Ensembles de données: diviser l'ensemble de données d'origine
Tous les bons projets d'ingénierie logicielle
consacrent une énergie considérable à
tester leurs applications. De même, nous vous recommandons vivement de tester
modèle de ML pour déterminer
l'exactitude de ses prédictions.
Ensembles d'entraînement, de validation et de test
Vous devez tester un modèle avec un ensemble d'exemples différent de ceux
utilisées pour entraîner le modèle. Comme vous l'apprendrez
un peu plus tard, en testant
sur différents exemples est une preuve plus solide de l'aptitude de votre modèle
sur le même ensemble d'exemples.
D'où proviennent ces différents exemples ? Traditionnellement, en machine learning,
On obtient ces différents exemples
en divisant l'ensemble de données d'origine. Vous pourriez
Par conséquent, supposons que vous devez diviser l'ensemble de données d'origine en deux sous-ensembles:
<ph type="x-smartling-placeholder"></ph>
Figure 8 : La répartition n'est pas optimale.
Exercice: testez votre intuition
Supposons que vous effectuez l'entraînement sur l'ensemble d'entraînement et l'évaluation sur l'ensemble de test
en plusieurs tours. À chaque tour, vous utilisez les résultats de l'ensemble de test
pour vous guider dans la mise à jour des hyperparamètres et de l'ensemble de caractéristiques. Pouvez-vous
voyez quelque chose de mal
dans cette approche ? Choisissez une seule réponse.
Si vous effectuez plusieurs séries de cette procédure,
pour correspondre implicitement
aux particularités de l'ensemble de test.
Oui. Plus vous utilisez souvent le même ensemble de test,
plus il est probable que le modèle
s'adapte à l'ensemble de test.
Comme un enseignant
« enseignant à l’épreuve », le modèle par inadvertance
à l'ensemble de test, ce qui peut rendre le modèle plus difficile
pour les adapter aux données du monde réel.
Cette approche est acceptable. Après tout, vous vous entraînez
un ensemble d'entraînement et l'évaluation
sur un ensemble de test distinct.
En fait, il y a un petit problème ici. Réfléchissez à ce qui pourrait
quelques erreurs se sont produites.
Cette approche est inefficace en termes de calcul. Ne pas modifier
d'hyperparamètres ou d'ensembles de caractéristiques
après chaque série de tests.
Les tests fréquents sont coûteux, mais essentiels. Cependant,
les tests sont beaucoup moins coûteux
qu'une formation supplémentaire. Optimisation
et l'ensemble de caractéristiques
peut considérablement améliorer
la qualité du modèle. Vous devez donc toujours prévoir du temps et des ressources de calcul
pour travailler dessus.
Diviser l'ensemble de données en deux
ensembles est une idée correcte, mais
une meilleure approche consiste à diviser l'ensemble de données en trois sous-ensembles.
En plus de l'ensemble d'entraînement et de l'ensemble de test, voici le troisième sous-ensemble:
Un ensemble de validation
qui effectue les premiers tests sur le modèle lors de son entraînement.
<ph type="x-smartling-placeholder"></ph>
Figure 9. Un bien meilleur temps de répartition.
Utilisez l'ensemble de validation pour évaluer les résultats de l'ensemble d'entraînement.
Une utilisation répétée de l'ensemble de validation suggère que votre modèle
pour réaliser des prédictions correctes, vérifiez votre modèle à l'aide de l'ensemble de test.
La figure suivante suggère ce workflow.
Dans la figure,
« Ajuster le modèle » c'est-à-dire ajuster
n'importe quel élément du modèle
(modification du taux d'apprentissage, ajout ou suppression
ou la conception d'un tout
nouveau modèle en partant de zéro.
À la fin de ce workflow, vous choisirez le modèle qui a obtenu les meilleurs résultats avec l'ensemble de test.
Figure 10. Un workflow adapté pour le développement et les tests
Le workflow illustré à la figure 10 est optimal, mais
les ensembles de test et de validation continuent de "s'user" avec une utilisation répétée.
En effet, plus vous utilisez les mêmes données pour prendre des décisions concernant
les paramètres d'hyperparamètres ou d'autres améliorations du modèle, moins il y a de confiance
que le modèle fera de bonnes prédictions
avec de nouvelles données.
C'est pourquoi il est judicieux de collecter plus de données à « actualiser » le test
et l'ensemble de validation. En partant de zéro, vous pouvez très bien se remettre.
Exercice: testez votre intuition
Vous avez mélangé tous les exemples de l'ensemble de données et divisé
les exemples brassés dans les ensembles d'entraînement, de validation et de test
ensembles de données. Cependant, la valeur de perte de votre ensemble de test est tellement faible
que vous soupçonnez
une erreur. D'où venait le problème ?
De nombreux exemples de l'ensemble de test sont des doublons d'exemples
dans l'ensemble d'entraînement.
Oui. Cela peut poser problème dans un ensemble de données comportant
exemples. Nous vous recommandons vivement de supprimer les exemples en double
l'ensemble de test avant de procéder au test.
L'entraînement et les tests ne sont pas déterministes. Parfois, par hasard,
la perte d'évaluation est
incroyablement faible. Réexécutez le test pour vérifier
résultat.
Bien que la perte varie légèrement à chaque exécution, elle ne devrait pas varier.
une grande somme que vous pensez
gagner à la loterie du machine learning.
Par hasard, l'ensemble de test contenait des exemples
a enregistré de bonnes performances.
Les exemples ont été bien mélangés, ce qui est donc extrêmement peu probable.
Autres problèmes liés aux ensembles de test
Comme l'illustre la question précédente, les exemples en double peuvent affecter l'évaluation du modèle.
Après avoir divisé un ensemble de données en ensembles d'entraînement, de validation et de test,
Supprimez tous les exemples de l'ensemble de validation ou de test qui sont des doublons de
dans l'ensemble d'entraînement. Le seul test fiable d'un modèle est
de nouveaux exemples, et non des doublons.
Prenons l'exemple d'un modèle qui prédit si un e-mail est un spam en utilisant
comme l'objet, le corps de l'e-mail et l'adresse e-mail de l'expéditeur.
Supposons que vous répartissiez les données en ensembles d'entraînement et en ensembles de test, selon une répartition de 80-20.
Après l'entraînement, le modèle atteint une précision de 99% à la fois pour l'ensemble d'entraînement
l'ensemble de test. Vous vous attendez probablement à une précision
inférieure sur l'ensemble de test.
examiner à nouveau les données et découvrir que bon nombre des exemples du test
sont des doublons des exemples de l'ensemble d'entraînement. Le problème est que vous
négligée de supprimer les doublons du même spam de votre entrée
avant de scinder les données. Vous avez appris par inadvertance
vos données de test.
En résumé, un bon ensemble de test ou de validation répond à toutes les
les critères suivants:
suffisamment grande pour produire des résultats de test statistiquement pertinents.
Représentation de l'ensemble de données dans son ensemble. Autrement dit, ne choisissez pas
un ensemble de test avec des caractéristiques
différentes de celles de l'ensemble d'entraînement.
Représentation représentative des données réelles que le modèle rencontrera
dans le cadre de son objectif commercial.
Aucun exemple dupliqué dans l'ensemble d'entraînement.
Exercices: tester vos connaissances
Pour un seul ensemble de données contenant un nombre fixe d'exemples,
Laquelle de ces affirmations est vraie ?
Chaque exemple utilisé pour tester le modèle est un exemple de moins utilisé
lors de l'entraînement du modèle.
La division d'exemples en ensembles d'entraînement, de test et de validation est un jeu à somme nulle.
C'est le compromis central.
Le nombre d'exemples dans l'ensemble de test doit être supérieur à
le nombre d'exemples dans l'ensemble de validation.
En théorie, l'ensemble de validation et le test de test doivent contenir le même
ou presque.
Le nombre d'exemples dans l'ensemble de test doit être supérieur à
le nombre d'exemples dans l'ensemble de validation ou d'entraînement.
Le nombre d'exemples dans l'ensemble d'entraînement est généralement supérieur à
le nombre d'exemples dans l'ensemble de validation ou de test ; Toutefois,
aucun pourcentage n'est requis
pour les différents ensembles.
Supposons que votre ensemble de test contienne suffisamment d'exemples pour effectuer
statistiquement pertinent. De plus, les tests
l'ensemble de test génère une perte faible. Cependant, le modèle a effectué
mal dans le monde réel. Que devez-vous faire ?
Déterminer en quoi le jeu de données d'origine diffère des données réelles.
Oui. Même les meilleurs jeux de données ne sont
qu'un instantané de données réelles ;
la couche sous-jacente
vérité terrain
a tendance à évoluer
au fil du temps. Bien que votre ensemble de test corresponde à
est suffisamment performant pour suggérer un modèle de bonne qualité,
le jeu de données ne correspond probablement
pas de manière adéquate aux données du monde réel.
Vous devrez peut-être effectuer un nouvel entraînement et un nouveau test sur un nouvel ensemble de données.
Effectuez un nouveau test sur le même ensemble de test. Les résultats du test
peuvent avoir
a été une anomalie.
Bien que de nouveaux tests puissent
produire des résultats légèrement différents,
cette tactique n'est probablement
pas très utile.
Combien d'exemples l'ensemble de test doit-il contenir ?
Suffisamment d'exemples pour obtenir un test statistiquement pertinent.
Oui. Combien d'exemples ? Vous devrez faire des tests.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/13 (UTC).
[]
[]
{
"lastModified": "Dernière mise à jour le 2024/08/13 (UTC).",
"confidential": False
}