Combien de données sont suffisantes pour former mon modèle d'apprentissage automatique?

11

Je travaille sur l'apprentissage automatique et la bioinformatique depuis un certain temps, et aujourd'hui j'ai eu une conversation avec un collègue sur les principaux problèmes généraux de l'exploration de données.

Mon collègue (qui est un expert en apprentissage automatique) a déclaré que, selon lui, l'aspect pratique sans doute le plus important de l'apprentissage automatique est de savoir si vous avez collecté suffisamment de données pour former votre modèle d'apprentissage automatique .

Cette déclaration m'a surpris, car je n'avais jamais accordé autant d'importance à cet aspect ...

J'ai ensuite cherché plus d'informations sur Internet, et j'ai trouvé ce post sur FastML.com comme règle générale que vous avez besoin d'environ 10 fois plus d'instances de données que de fonctionnalités .

Deux questions:

1 - Cette problématique est-elle vraiment particulièrement pertinente en apprentissage automatique?

2 - La règle des 10 fois fonctionne-t-elle? Existe-t-il d'autres sources pertinentes pour ce thème?

DavideChicco.it
la source
1. Oui. 2. C'est une bonne base de référence mais vous pouvez la contourner avec la régularisation pour réduire les degrés de liberté effectifs . Cela fonctionne particulièrement bien avec l'apprentissage en profondeur. 3. Vous pouvez diagnostiquer la situation de votre problème en traçant la courbe d'apprentissage de la taille de l'échantillon en fonction de l'erreur ou du score.
Emre
@Emre Merci! Pouvez-vous également me suggérer des articles ou du matériel à lire?
DavideChicco.it
Cela sera généralement couvert aux côtés de la validation croisée et d'autres techniques de validation de modèle dans votre manuel.
Emre
La règle des 10 fois est excellente si vous pouvez y parvenir, mais elle n'est tout simplement pas pratique dans certains contextes commerciaux. Il existe de nombreuses situations où le nombre d'entités est beaucoup plus important que les instances de données (p >> n). Il existe des techniques d'apprentissage automatique conçues spécifiquement pour faire face à ces situations.
gars de la science des données
Si vous avez besoin d'une explication détaillée qui peut vous aider à comprendre le graphique de la courbe d'apprentissage, consultez ceci: scikit-yb.org/en/latest/api/model_selection/learning_curve.html
shrikanth singh

Réponses:

6

La règle des dix fois me semble une règle empirique, mais il est vrai que les performances de votre algorithme d'apprentissage automatique peuvent diminuer si vous ne l'alimentez pas avec suffisamment de données d'entraînement.

Une façon pratique et basée sur les données de déterminer si vous avez suffisamment de données d'entraînement est de tracer une courbe d'apprentissage, comme celle de l'exemple ci-dessous:

Courbe d'apprentissage

La courbe d'apprentissage représente l'évolution des erreurs de formation et de test à mesure que vous augmentez la taille de votre ensemble de formation.

  • L'erreur d'apprentissage augmente à mesure que vous augmentez la taille de votre ensemble de données, car il devient plus difficile d'adapter un modèle qui tient compte de la complexité / variabilité croissante de votre ensemble d'entraînement.
  • L'erreur de test diminue à mesure que vous augmentez la taille de votre ensemble de données, car le modèle peut mieux se généraliser à partir d'une quantité d'informations plus élevée.

Comme vous pouvez le voir sur la partie la plus à droite de l'intrigue, les deux lignes de l'intrigue ont tendance à atteindre et à asymptoter. Par conséquent, vous finirez par atteindre un point où l'augmentation de la taille de votre ensemble de données n'aura pas d'impact sur votre modèle formé.

La distance entre l'erreur de test et les asymptotes d'erreur d'apprentissage est une représentation du sur-ajustement de votre modèle. Mais plus important encore, ce graphique indique si vous avez besoin de plus de données. Fondamentalement, si vous représentez une erreur de test et de formation pour augmenter des sous-ensembles plus importants de vos données de formation, et que les lignes ne semblent pas atteindre une asymptote, vous devez continuer à collecter plus de données.

Pablo Suau
la source
Dans la fonction learning_curve dois-je passer X_train, y_train: Only train subsetouX, y: the entire dataset
Rookie_123
Cette courbe résulte de l'application d'une validation croisée à mesure que vous augmentez le nombre d'échantillons. Par conséquent, vous avez besoin de l'ensemble de données complet.
Pablo Suau
4
  1. Oui, le problème est certainement pertinent, car votre capacité à ajuster le modèle dépendra de la quantité de données dont vous disposez, mais plus important encore, cela dépend de la qualité des prédicteurs.
  2. Une règle de 10 fois peut être une règle de base (et il y en a beaucoup d'autres), mais cela dépend vraiment de l'utilité prédictive de vos fonctionnalités. Par exemple, l'ensemble de données iris est assez petit mais facilement résolu, car les caractéristiques permettent une bonne séparation des cibles. À l'inverse, vous pourriez avoir 10 millions d'exemples et ne pas correspondre si les fonctionnalités sont faibles.
HEITZ
la source
Merci! Pouvez-vous également me suggérer des articles ou du matériel à lire?
DavideChicco.it