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 : Barre horizontale divisée en deux parties: environ 80% de cette barre
            correspond à l&#39;ensemble d&#39;entraînement
et à environ 20% l&#39;ensemble de test.
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:

<ph type="x-smartling-placeholder">
</ph> Figure 9. Barre horizontale divisée en trois parties: 70% de cette barre
            correspond à l&#39;ensemble d&#39;entraînement, 15% à l&#39;ensemble de validation et 15%
            l&#39;ensemble de test
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 : Schéma du workflow comprenant les étapes suivantes:
            1. Entraîner le modèle sur l&#39;ensemble d&#39;entraînement
            2. Évaluer le modèle sur l&#39;ensemble de validation
            3. Modifiez le modèle en fonction des résultats obtenus avec l&#39;ensemble de validation.
            4. Itérez les points 1, 2 et 3, pour choisir le modèle qui répond le mieux à vos besoins.
               sur l&#39;ensemble de validation.
            5. Confirmez les résultats sur l&#39;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.
Au moins 15% de l'ensemble de données d'origine.
15% ne sont peut-être pas suffisants.