Je comprends le raisonnement derrière la division des données en un ensemble de test et un ensemble de validation. Je comprends également que la taille de la scission dépendra de la situation mais variera généralement de 50/50 à 90/10.
J'ai construit un RNN pour corriger l'orthographe et commencer avec un ensemble de données de ~ 5m de phrases. Je rase 500k de phrases, puis je m'entraîne avec les ~ 4,5m de phrases restantes. Une fois la formation terminée, je prends mon jeu de validation et calcule la précision.
La chose intéressante est qu'après seulement 4% de mon ensemble de validation, j'ai une précision de 69,4% et ce pourcentage ne change pas de plus de 0,1% dans les deux sens. Finalement, je viens de couper la validation, car le nombre est bloqué à 69,5%.
Alors pourquoi couper 10% pour la validation alors que je pourrais probablement m'en tirer avec 1%? Est-ce que ça importe?
la source
Réponses:
Des ensembles de validation plus grands donnent des estimations plus précises des performances hors échantillon. Mais comme vous l'avez remarqué, à un moment donné, cette estimation peut être aussi précise que vous en avez besoin, et vous pouvez faire des prédictions approximatives quant à la taille de l'échantillon de validation dont vous avez besoin pour atteindre ce point.
Pour une précision de classification correcte / incorrecte simple, vous pouvez calculer l'erreur-type de l'estimation comme (écart-type d'une variable de Bernouilli), oùpest la probabilité d'une classification correcte etnest la taille de l'ensemble de validation. Bien sûr, vous ne connaissez pasp, mais vous pourriez avoir une idée de sa portée. Par exemple, supposons que vous vous attendiez à une précision comprise entre 60 et 80%, et que vous souhaitiez que vos estimations aient une erreur standard inférieure à 0,1%: √p ( 1 - p ) / n---------√ p n p
Quelle doit êtrela taille den(la taille de l'ensemble de validation)? Pourp=0,6on obtient:
n> 0,6 - 0,6 2
Ces calculs mettent également en évidence le point soulevé par Tim dans sa réponse, à savoir que la précision de vos estimations dépend de la taille absolue de votre ensemble de validation (c'est-à-dire sur ), plutôt que de sa taille par rapport à l'ensemble d'entraînement.n
(Je pourrais également ajouter que je suppose un échantillonnage représentatif ici. Si vos données sont très hétérogènes, vous devrez peut-être utiliser des ensembles de validation plus grands juste pour vous assurer que les données de validation incluent toutes les mêmes conditions, etc., que vos données de train et de test. )
la source
Une bonne discussion de ce problème est fournie par Andrew Ng dans son cours Deep Learning sur Coursera.org . Comme il le fait remarquer, les répartitions standard comme 8: 2 ou 9: 1 sont valides si vos données sont petites à modérément grandes, mais de nombreux problèmes d'apprentissage automatique actuels utilisent d'énormes quantités de données (par exemple, des millions d'observations comme dans votre cas), et dans un tel scénario, vous pourriez laisser 2%, 1%, ou même moins des données en tant qu'ensemble de test, en prenant toutes les données restantes pour votre ensemble d'entraînement (il plaide en fait pour utiliser également un ensemble de développement). Comme il le fait valoir, plus vous alimentez votre algorithme en données, meilleures sont ses performances et cela est particulièrement vrai pour le deep learning * (il note également que cela ne doit pas être le cas pour les algorithmes de machine learning non-deep learning).
Comme déjà remarqué dans les commentaires d' Alex Burn , il ne s'agit pas vraiment de la taille de votre ensemble de test, mais de sa représentativité pour votre problème. Habituellement, avec une plus grande taille des données, nous espérons qu'elles seront plus représentatives, mais cela ne doit pas être le cas. C'est toujours un compromis et vous devez faire des considérations spécifiques au problème. Il n'y a pas de règles indiquant que l'ensemble de tests ne doit pas être inférieur à X cas, ni inférieur à Y% de vos données.
* - Avertissement: je répète les arguments d'Andrew Ng ici, je ne me considérerais pas comme un spécialiste de l'apprentissage en profondeur.
la source
Dans l'articleUne / 2 N---√ , où N est le nombre d'échantillons disponibles. Dans ton casN= 5 ⋅ 106 et la répartition optimale est ≈ 0,00032 = 0,032 % . Selon la formule, 1580 échantillons devraient être optimaux dans votre cas.
Asymptotic Statistical Theory of Overtraining and Cross-Validation
de Shun-ichi Amari et al. [1] ils étudient la quantité optimale d'échantillons à exclure en tant qu'ensemble de validation (aux fins d'un arrêt précoce) et concluent que la répartition optimale est[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701
la source