Vidéo: Angular 2.0 - tutoriel 12 : créer un formulaire programmatiquement 2024
Parfois, l'apprentissage automatique nécessite de recourir à la validation croisée. Un problème notable avec le partage train / test est que vous introduisez un biais dans vos tests car vous réduisez la taille de vos données d'entraînement dans l'échantillon. Lorsque vous divisez vos données, vous pouvez conserver certains exemples utiles hors de la formation. De plus, vos données sont parfois si complexes qu'un ensemble de tests, bien qu'apparemment similaire à l'ensemble d'apprentissage, n'est pas vraiment similaire parce que les combinaisons de valeurs sont différentes (ce qui est typique des ensembles de données hautement dimensionnels).
Ces problèmes ajoutent à l'instabilité des résultats d'échantillonnage lorsque vous n'avez pas beaucoup d'exemples. Le risque de partager vos données de manière défavorable explique également pourquoi le partage train / test n'est pas la solution privilégiée par les praticiens de l'apprentissage automatique lorsque vous devez évaluer et régler une solution d'apprentissage automatique.
La validation croisée basée sur les k-folds est en fait la réponse. Il repose sur la division aléatoire, mais cette fois, il divise vos données en un nombre k de plis (parties de vos données) de taille égale. Ensuite, chaque pli est tenu à tour de rôle comme un ensemble de test et les autres sont utilisés pour l'entraînement. Chaque itération utilise un pli différent comme test, ce qui produit une estimation d'erreur.
En effet, après avoir terminé le test sur un pli contre les autres utilisés comme entraînement, un pli successif, différent du précédent, est tenu et la procédure est répétée afin de produire une autre estimation d'erreur. Le processus se poursuit jusqu'à ce que tous les k-folds soient utilisés une fois comme test et que vous ayez un nombre d'estimations d'erreur que vous pouvez calculer en une estimation d'erreur moyenne (score de validation croisée) et une erreur standard des estimations.
Cette procédure offre les avantages suivants:
- Cela fonctionne bien quel que soit le nombre d'exemples, car en augmentant le nombre de plis utilisés, vous augmentez la taille de votre ensemble d'entraînement (plus grand, plus grand ensemble d'entraînement, polarisation réduite) et en diminuant la taille de l'ensemble de test.
- Les différences de distribution pour les plis individuels importent peu. Quand un pli a une distribution différente par rapport aux autres, il est utilisé une seule fois comme un ensemble de test et est mélangé avec d'autres dans le cadre de l'ensemble d'entraînement pendant les tests restants.
- Vous êtes en train de tester toutes les observations, donc vous testez complètement votre hypothèse d'apprentissage automatique en utilisant toutes les données que vous avez.
- En prenant la moyenne des résultats, vous pouvez vous attendre à une performance prédictive. En outre, l'écart-type des résultats peut vous indiquer la variation que vous pouvez espérer dans les données réelles hors échantillon. Une variation plus élevée des performances validées croisées vous informe de données extrêmement variées que l'algorithme est incapable de saisir correctement.
L'utilisation de la validation croisée par k-fold est toujours le choix optimal, sauf si les données que vous utilisez ont un ordre qui compte. Par exemple, il pourrait s'agir d'une série chronologique, telle que les ventes. Dans ce cas, vous ne devez pas utiliser une méthode d'échantillonnage aléatoire mais vous baser sur un partage train / test basé sur la séquence d'origine afin que l'ordre soit préservé et que vous puissiez tester les derniers exemples de cette série ordonnée.