Qu'est-ce que le surajustement dans l'apprentissage automatique et comment l'éviter?

Cet article couvre le surajustement dans l'apprentissage automatique avec des exemples et quelques techniques à éviter, détecter le surajustement dans un modèle d'apprentissage automatique.

Construire un modèle d'apprentissage automatique ne consiste pas seulement à alimenter les données, il existe de nombreuses lacunes qui affectent la précision de tout modèle. Surajustement dans est l'une de ces lacunes dans l'apprentissage automatique qui nuit à la précision ainsi qu'aux performances du modèle. Les sujets suivants sont traités dans cet article:



Qu'est-ce que le surajustement dans l'apprentissage automatique?

Un modèle statistique est dit surajusté lorsque nous lui fournissons beaucoup plus de données que nécessaire. Pour le rendre accessible, imaginez essayer de rentrer dans des vêtements surdimensionnés.



Lorsqu'un modèle contient plus de données qu'il n'en a réellement besoin, il commence à capturer les données bruyantes et les valeurs inexactes dans les données. En conséquence, l'efficacité et la précision du modèle diminuent. Jetons un coup d'œil à quelques exemples de surapprentissage pour comprendre comment cela se produit réellement.



Exemples de surajustement

Exemple 1

Si nous prenons un exemple de simple régression linéaire , l'entraînement des données consiste à déterminer le coût minimum entre la ligne de meilleur ajustement et les points de données. Il passe par un certain nombre d'itérations pour trouver le meilleur ajustement optimal, en minimisant le coût. C'est là qu'intervient le surajustement.



La ligne vue dans l'image ci-dessus peut donner un résultat très efficace pour un nouveau point de données. Dans le cas du surajustement, lorsque nous exécutons l'algorithme d'apprentissage sur l'ensemble de données, nous permettons au coût de diminuer à chaque nombre d'itérations.

Exécuter ceci trop longtemps signifiera un coût réduit, mais il s'adaptera également aux données bruyantes de l'ensemble de données. Le résultat ressemblerait à quelque chose comme dans le graphique ci-dessous.

Cela peut sembler efficace, mais ce n’est pas vraiment le cas. L'objectif principal d'un algorithme tel que régression linéaire est de trouver une tendance dominante et d'ajuster les points de données en conséquence. Mais dans ce cas, la ligne s'adapte à tous les points de données, ce qui n'est pas pertinent pour l'efficacité du modèle à prédire les résultats optimaux pour les nouveaux points de données d'entrée.

Considérons maintenant un exemple plus descriptif à l'aide d'un énoncé de problème.

Exemple 2

Énoncé du problème: Considérons que nous voulons prédire si un joueur de football obtiendra une place dans un club de football de niveau 1 en fonction de ses performances actuelles dans la ligue de niveau 2.

Imaginez maintenant, nous formons et adaptons le modèle avec 10000 de ces joueurs avec des résultats. Lorsque nous essayons de prédire le résultat sur l'ensemble de données d'origine, disons que nous avons une précision de 99%. Mais la précision sur un ensemble de données différent est d'environ 50%. Cela signifie que le modèle ne se généralise pas bien à partir de nos données d'entraînement et de données invisibles.

Voilà à quoi ressemble le surajustement. C'est un problème très courant dans le Machine Learning et même la science des données. Maintenant, comprenons le signal et le bruit.

Signal vs bruit

Dans la modélisation prédictive, le signal fait référence au véritable modèle sous-jacent qui aide le modèle à apprendre les données. D'autre part, le bruit est des données non pertinentes et aléatoires dans l'ensemble de données. Pour comprendre le concept de bruit et de signal, prenons un exemple concret.

Supposons que nous voulions modéliser l'âge par rapport à l'alphabétisation des adultes. Si nous échantillonnons une très grande partie de la population, nous trouverons une relation claire. C'est le signal, alors que le bruit interfère avec le signal. Si nous faisons de même avec une population locale, la relation deviendra trouble. Il serait affecté par les valeurs aberrantes et le caractère aléatoire, par exemple, un adulte est allé à l’école tôt ou un adulte n’a pas les moyens de se payer une éducation, etc.

En parlant de bruit et de signal en termes d'apprentissage automatique, un bon algorithme d'apprentissage automatique séparera automatiquement les signaux du bruit. Si l'algorithme est trop complexe ou inefficace, il peut également apprendre le bruit. Par conséquent, surajustement du modèle. Comprenons également le sous-ajustement dans le Machine Learning.

javascript obtenir la taille du tableau

Qu'est-ce que le sous-ajustement?

Afin d'éviter le surapprentissage, nous pourrions arrêter l'entraînement à un stade plus précoce. Mais cela peut aussi conduire le modèle à ne pas être en mesure d'apprendre suffisamment à partir des données de formation, et avoir du mal à saisir la tendance dominante. C'est ce qu'on appelle le sous-ajustement. Le résultat est le même que le surajustement, l'inefficacité dans la prédiction des résultats.

Maintenant que nous avons compris ce qu'est vraiment le sous-ajustement et le surajustement dans le Machine Learning, essayons de comprendre comment nous pouvons détecter le surapprentissage dans le Machine Learning.

Comment détecter le surajustement?

Le principal défi du surajustement est d'estimer la précision des performances de notre modèle avec de nouvelles données. Nous ne pourrions pas estimer la précision tant que nous ne l'avons pas réellement testée.

Pour résoudre ce problème, nous pouvons diviser l'ensemble de données initial en ensembles de données d'entraînement et de test séparés. Avec cette technique, nous pouvons en fait estimer la performance de notre modèle avec les nouvelles données.

Comprenons cela avec un exemple, imaginons que nous obtenions une précision de plus de 90% sur l'ensemble d'entraînement et une précision de 50% sur l'ensemble de test. Ensuite, ce serait automatiquement un drapeau rouge pour le modèle.

Une autre façon de détecter le surajustement est de commencer par un modèle simpliste qui servira de référence.

Avec cette approche, si vous essayez des algorithmes plus complexes, vous serez en mesure de comprendre si la complexité supplémentaire vaut même la peine pour le modèle ou non. Il est également connu sous le nom de Test du rasoir d'Occam , il choisit fondamentalement le modèle simpliste en cas de performances comparables dans le cas de deux modèles. Bien que la détection du surajustement soit une bonne pratique, mais il existe également plusieurs techniques pour éviter le surajustement. Voyons comment nous pouvons éviter le surapprentissage dans le Machine Learning.

Comment éviter le surajustement dans l'apprentissage automatique?

Il existe plusieurs techniques pour éviter le surajustement dans le Machine Learning répertoriées ci-dessous.

  1. Validation croisée

  2. Formation avec plus de données

  3. Suppression de fonctionnalités

  4. Arrêt précoce

  5. Régularisation

  6. Ensembling

1. Validation croisée

L'une des fonctionnalités les plus puissantes pour éviter / empêcher le surajustement est la validation croisée. L'idée derrière cela est d'utiliser les données d'entraînement initiales pour générer des mini-train-test-fractionnements, puis d'utiliser ces fractionnements pour ajuster votre modèle.

Dans une validation standard de k-fold, les données sont partitionnées en k-sous-ensembles également appelés replis. Après cela, l'algorithme est entraîné de manière itérative sur k-1 plis tout en utilisant les plis restants comme ensemble de test, également appelé pli de retenue.

La validation croisée nous aide à régler les hyperparamètres avec uniquement l'ensemble d'entraînement d'origine. Il conserve essentiellement l'ensemble de test séparément comme un véritable ensemble de données invisibles pour la sélection du modèle final. Par conséquent, éviter complètement le surajustement.

2. Formation avec plus de données

Cette technique peut ne pas fonctionner à chaque fois, comme nous l'avons également discuté dans l'exemple ci-dessus, où la formation avec une quantité importante de population aide le modèle. Cela aide essentiellement le modèle à mieux identifier le signal.

Mais dans certains cas, l'augmentation des données peut également signifier alimenter davantage le modèle en bruit. Lorsque nous entraînons le modèle avec plus de données, nous devons nous assurer que les données sont propres et exemptes de hasard et d'incohérences.

3. Suppression de fonctionnalités

Bien que certains algorithmes aient une sélection automatique de fonctionnalités. Pour un nombre important de ceux qui n'ont pas de sélection de fonctionnalités intégrée, nous pouvons supprimer manuellement quelques fonctionnalités non pertinentes des fonctionnalités d'entrée pour améliorer la généralisation.

Une façon de le faire est de tirer une conclusion sur la façon dont une fonction s'intègre dans le modèle. C'est assez similaire au débogage du code ligne par ligne.

Dans le cas où une fonctionnalité est incapable d'expliquer la pertinence du modèle, nous pouvons simplement identifier ces fonctionnalités. Nous pouvons même utiliser quelques heuristiques de sélection de fonctionnalités pour un bon point de départ.

4. Arrêt anticipé

Lorsque le modèle est en cours d'entraînement, vous pouvez réellement mesurer les performances du modèle en fonction de chaque itération. Nous pouvons le faire jusqu’à un moment où les itérations améliorent les performances du modèle. Après cela, le modèle suradapte les données d'entraînement à mesure que la généralisation s'affaiblit après chaque itération.

Donc, fondamentalement, un arrêt prématuré signifie arrêter le processus d'entraînement avant que le modèle ne dépasse le point où le modèle commence à suradapter les données d'entraînement. Cette technique est principalement utilisée dans l'apprentissage en profondeur .

5. Régularisation

Cela signifie essentiellement forcer artificiellement votre modèle à être plus simple en utilisant un plus large éventail de techniques. Cela dépend totalement du type d'apprenant que nous utilisons. Par exemple, nous pouvons tailler un , utilisez un abandon sur un réseau neuronal ou ajoutez un paramètre de pénalité à la fonction de coût dans la régression.

Très souvent, la régularisation est également un hyperparamètre. Cela signifie qu'il peut également être réglé par validation croisée.

6. Ensembling

Cette technique combine essentiellement les prédictions de différents modèles d'apprentissage automatique. Deux des méthodes d'assemblage les plus courantes sont répertoriées ci-dessous:

  • L'ensachage tente de réduire le risque de surajustement des modèles

  • Stimuler les tentatives pour améliorer la flexibilité prédictive des modèles plus simples

Même s'il s'agit de deux méthodes d'ensemble, l'approche part totalement de directions opposées. L'ensachage utilise des modèles de base complexes et essaie de lisser leurs prédictions tout en augmentant utilise des modèles de base simples et essaie d'augmenter sa complexité globale.

Qu'est-ce que Goodness Of Fit?

Dans la modélisation statistique, la qualité de l'ajustement fait référence à la mesure dans laquelle les résultats ou les valeurs prédites correspondent aux valeurs observées ou vraies. Un modèle qui a appris du bruit au lieu du signal est surajusté car il s'adaptera à l'ensemble de données d'apprentissage mais aura une efficacité moindre avec le nouvel ensemble de données.

Le compromis entre biais et variance

La variance et le biais sont des formes d'erreur de prédiction dans . Le compromis entre une variance élevée et un biais élevé est un concept très important en statistiques et en apprentissage automatique. C'est un concept qui affecte tous les algorithmes de Machine Learning supervisés.

Le compromis biais-variance a un impact très important sur la détermination de la complexité, du sous-ajustement et du sur-ajustement de tout modèle d'apprentissage automatique.

Biais

Ce n'est rien d'autre que la différence entre les valeurs prédites et les valeurs réelles ou vraies dans le modèle. Il n'est pas toujours facile pour le modèle d'apprendre à partir de signaux assez complexes.

Imaginons un montage régression linéaire à un modèle avec des données non linéaires. Quelle que soit l'efficacité avec laquelle le modèle apprend les observations, il ne modélisera pas efficacement les courbes. C'est ce qu'on appelle le sous-ajustement.

Variance

Il fait référence à la sensibilité du modèle à des ensembles spécifiques dans les données d'entraînement. Un algorithme à variance élevée produira un modèle bizarre qui est radicalement différent de l'ensemble d'apprentissage.

Imaginez un algorithme qui s'adapte au modèle sans contrainte et super flexible, il apprendra également du bruit dans l'ensemble d'entraînement provoquant le surajustement.

Compromis biais-variance

Un algorithme d'apprentissage automatique ne peut pas être perçu comme une méthode unique pour entraîner le modèle, mais plutôt comme un processus répétitif.

Les algorithmes à faible variance et biais élevé sont moins complexes, avec une structure simple et rigide.

  • Ils formeront les modèles cohérents, mais inexacts en moyenne.

  • Ceux-ci incluent des algorithmes linéaires ou paramétriques, tels que la régression, , etc.

Les algorithmes à variance faible et à biais faible ont tendance à être plus complexes, avec une structure flexible.

  • Ils formeront les modèles incohérents mais précis en moyenne.

  • Ceux-ci incluent des algorithmes non linéaires ou non paramétriques tels que , , etc.

Cela nous amène à la fin de cet article où nous avons appris le surajustement dans l'apprentissage automatique et les différentes techniques pour l'éviter. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

Si vous avez trouvé cet article sur 'Surajustement dans l'apprentissage automatique' pertinent, consultez le une entreprise de formation en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.

Nous sommes là pour vous aider à chaque étape de votre voyage et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir . Le cours est conçu pour vous donner une longueur d'avance dans la programmation Python et vous former aux concepts Python de base et avancés ainsi que divers comme , , etc.

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Surapprentissage en machine learning» et notre équipe se fera un plaisir de vous répondre.