Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Surapprentissage | Choix du Meilleur Modèle
Régression Linéaire Avec Python

bookSurapprentissage

Surapprentissage

Considérez les deux droites de régression ci-dessous. Laquelle est la meilleure ?

Les métriques suggèrent que le second modèle est meilleur, donc nous l'utilisons pour prédire X_new = [0.2, 0.5, 2.7]. Mais après avoir comparé les prédictions avec les valeurs réelles, le premier modèle donne de meilleurs résultats.

Cela se produit parce que le second modèle surapprend — il est trop complexe et correspond trop étroitement aux données d'entraînement, échouant à généraliser sur de nouveaux exemples.

Sous-ajustement

Sous-ajustement se produit lorsqu'un modèle est trop simple pour s'adapter même aux données d'entraînement, ce qui conduit également à de mauvaises prédictions sur des données non vues.

Il est donc possible d'essayer de déterminer visuellement si le modèle est en sous-ajustement ou en surajustement.

Comme il n'est pas possible de visualiser des modèles de haute dimension, une autre méthode est nécessaire pour détecter le surajustement ou le sous-ajustement.

Séparation entraînement-test

Pour estimer la performance sur des données non vues, le jeu de données est divisé en un ensemble d'entraînement et un ensemble de test avec des cibles connues.

L'entraînement est réalisé sur l'ensemble d'entraînement et les métriques sont calculées sur les ensembles d'entraînement et de test afin de comparer les performances.

La séparation doit être aléatoire. En général, 20 à 30 % des données sont attribuées à l'ensemble de test, et 70 à 80 % sont utilisées pour l'entraînement. Scikit-learn propose une méthode simple pour effectuer cette opération.

Par exemple, pour diviser l'ensemble d'entraînement en 70 % entraînement / 30 % test, vous pouvez utiliser le code suivant :

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Sur la base des scores MSE des modèles, déterminer s'ils surajustent ou sous-ajustent l'ensemble d'entraînement (le jeu de données est le même).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.26

bookSurapprentissage

Glissez pour afficher le menu

Surapprentissage

Considérez les deux droites de régression ci-dessous. Laquelle est la meilleure ?

Les métriques suggèrent que le second modèle est meilleur, donc nous l'utilisons pour prédire X_new = [0.2, 0.5, 2.7]. Mais après avoir comparé les prédictions avec les valeurs réelles, le premier modèle donne de meilleurs résultats.

Cela se produit parce que le second modèle surapprend — il est trop complexe et correspond trop étroitement aux données d'entraînement, échouant à généraliser sur de nouveaux exemples.

Sous-ajustement

Sous-ajustement se produit lorsqu'un modèle est trop simple pour s'adapter même aux données d'entraînement, ce qui conduit également à de mauvaises prédictions sur des données non vues.

Il est donc possible d'essayer de déterminer visuellement si le modèle est en sous-ajustement ou en surajustement.

Comme il n'est pas possible de visualiser des modèles de haute dimension, une autre méthode est nécessaire pour détecter le surajustement ou le sous-ajustement.

Séparation entraînement-test

Pour estimer la performance sur des données non vues, le jeu de données est divisé en un ensemble d'entraînement et un ensemble de test avec des cibles connues.

L'entraînement est réalisé sur l'ensemble d'entraînement et les métriques sont calculées sur les ensembles d'entraînement et de test afin de comparer les performances.

La séparation doit être aléatoire. En général, 20 à 30 % des données sont attribuées à l'ensemble de test, et 70 à 80 % sont utilisées pour l'entraînement. Scikit-learn propose une méthode simple pour effectuer cette opération.

Par exemple, pour diviser l'ensemble d'entraînement en 70 % entraînement / 30 % test, vous pouvez utiliser le code suivant :

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Sur la base des scores MSE des modèles, déterminer s'ils surajustent ou sous-ajustent l'ensemble d'entraînement (le jeu de données est le même).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
some-alt