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

Contenu du cours

Régression Linéaire Avec Python

Régression Linéaire Avec Python

1. Régression Linéaire Simple
2. Régression Linéaire Multiple
3. Régression Polynomiale
4. Choisir le Meilleur Modèle

book
Surapprentissage

Surapprentissage

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

Eh bien, les métriques nous disent que la seconde est meilleure. Utilisons-la donc pour prédire de nouvelles valeurs ! Nous avons besoin des prédictions pour X_new = [0.2,0.5,2.7]. Mais lorsque nous avons obtenu les valeurs cibles réelles pour le X_new que nous venons de prédire, il s'est avéré que le premier modèle avait une bien meilleure prédiction.

C'est parce que le deuxième modèle surapprend l'ensemble d'entraînement. Surapprentissage se produit lorsque le modèle construit est trop complexe, de sorte qu'il peut parfaitement s'adapter aux données d'entraînement, mais il ne prédit pas aussi bien les instances non vues.

Sous-apprentissage

Il existe également un autre concept, le sous-apprentissage. Cela se produit lorsque le modèle construit est trop simple et ne s'adapte même pas bien aux données d'entraînement. Dans ces cas, les prédictions des instances non vues sont également erronées.

Nous pouvons donc essayer de déterminer visuellement si le modèle sous-apprend ou surapprend.

Nous savons déjà que nous ne pouvons pas visualiser la régression linéaire multiple avec de nombreuses caractéristiques. Y a-t-il un autre moyen de savoir si le modèle surajuste ou sous-ajuste ? Il s'avère que oui.

Division train-test

Nous voulons savoir comment le modèle se comportera sur des instances non vues. Pour cela, nous avons besoin des instances non vues avec les vraies valeurs cibles. Et nous n'avons que les vraies valeurs cibles dans l'ensemble d'entraînement. La solution consiste à diviser l'ensemble d'entraînement en deux ensembles, un ensemble d'entraînement et un ensemble de test.

Maintenant, nous pouvons construire le modèle en utilisant l'ensemble d'entraînement, calculer les métriques sur l'ensemble d'entraînement (instances vues) puis calculer les métriques sur l'ensemble de test (instances non vues).

Il est essentiel de diviser l'ensemble d'entraînement de manière aléatoire. Habituellement, vous voudrez utiliser environ 20-30% de votre ensemble d'entraînement pour l'ensemble de test, et les 70-80% restants seront laissés comme ensemble d'entraînement. Scikit-learn fournit une fonction simple pour diviser l'ensemble de manière aléatoire :

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

question-icon

En vous basant sur les scores MSE des modèles, déterminez s'ils surajustent/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
We're sorry to hear that something went wrong. What happened?
some-alt