Surapprentissage
Surapprentissage
Considérez les deux droites de régression ci-dessous. Laquelle est la meilleure ?
Eh bien, les métriques indiquent que la seconde est meilleure. Nous allons donc l'utiliser 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 vraies valeurs cibles pour les X_new
que nous venions de prédire, il s'est avéré que le premier modèle avait une bien meilleure prédiction.
Cela s'explique par le fait que le second modèle surapprend l'ensemble d'entraînement. Le surapprentissage se produit lorsque le modèle construit est trop complexe, ce qui lui permet d'ajuster parfaitement les données d'entraînement, mais il ne prédit pas aussi bien les instances non vues.
Sous-ajustement
Il existe également un autre concept, le sous-ajustement. Cela se produit lorsque le modèle construit est trop simple et ne s'ajuste même pas correctement aux données d'entraînement. Dans ces cas, les prédictions pour les instances non vues sont également incorrectes.
Il est donc possible d'essayer de déterminer visuellement si le modèle est en situation de sous-ajustement ou de surajustement.
Nous savons déjà qu'il n'est pas possible de visualiser la régression linéaire multiple avec de nombreuses variables. Existe-t-il un autre moyen de déterminer si le modèle est en situation de surajustement ou de sous-ajustement ? Il s'avère que oui.
Séparation entraînement-test
Il est nécessaire d’évaluer la performance du modèle sur des instances non vues. Pour cela, il faut disposer d’instances non vues avec leurs vraies valeurs cibles. Or, seules les données d’entraînement possèdent ces vraies valeurs cibles. La solution consiste à diviser l’ensemble d’entraînement en deux sous-ensembles : un ensemble d’entraînement et un ensemble de test.
Le modèle peut alors être construit à partir de l’ensemble d’entraînement, les métriques calculées sur l’ensemble d’entraînement (instances vues), puis sur l’ensemble de test (instances non vues).
Il est essentiel de diviser l’ensemble d’entraînement de manière aléatoire. En général, il est recommandé d’utiliser environ 20 à 30 % de l’ensemble d’entraînement pour l’ensemble de test, et de conserver les 70 à 80 % restants pour l’entraînement. Scikit-learn propose une fonction simple pour effectuer cette séparation aléatoire :
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)
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
What are some common signs of overfitting and underfitting in a model?
How does the train-test split help prevent overfitting?
Can you explain how to interpret the results after splitting the data into training and test sets?
Awesome!
Completion rate improved to 5.26
Surapprentissage
Glissez pour afficher le menu
Surapprentissage
Considérez les deux droites de régression ci-dessous. Laquelle est la meilleure ?
Eh bien, les métriques indiquent que la seconde est meilleure. Nous allons donc l'utiliser 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 vraies valeurs cibles pour les X_new
que nous venions de prédire, il s'est avéré que le premier modèle avait une bien meilleure prédiction.
Cela s'explique par le fait que le second modèle surapprend l'ensemble d'entraînement. Le surapprentissage se produit lorsque le modèle construit est trop complexe, ce qui lui permet d'ajuster parfaitement les données d'entraînement, mais il ne prédit pas aussi bien les instances non vues.
Sous-ajustement
Il existe également un autre concept, le sous-ajustement. Cela se produit lorsque le modèle construit est trop simple et ne s'ajuste même pas correctement aux données d'entraînement. Dans ces cas, les prédictions pour les instances non vues sont également incorrectes.
Il est donc possible d'essayer de déterminer visuellement si le modèle est en situation de sous-ajustement ou de surajustement.
Nous savons déjà qu'il n'est pas possible de visualiser la régression linéaire multiple avec de nombreuses variables. Existe-t-il un autre moyen de déterminer si le modèle est en situation de surajustement ou de sous-ajustement ? Il s'avère que oui.
Séparation entraînement-test
Il est nécessaire d’évaluer la performance du modèle sur des instances non vues. Pour cela, il faut disposer d’instances non vues avec leurs vraies valeurs cibles. Or, seules les données d’entraînement possèdent ces vraies valeurs cibles. La solution consiste à diviser l’ensemble d’entraînement en deux sous-ensembles : un ensemble d’entraînement et un ensemble de test.
Le modèle peut alors être construit à partir de l’ensemble d’entraînement, les métriques calculées sur l’ensemble d’entraînement (instances vues), puis sur l’ensemble de test (instances non vues).
Il est essentiel de diviser l’ensemble d’entraînement de manière aléatoire. En général, il est recommandé d’utiliser environ 20 à 30 % de l’ensemble d’entraînement pour l’ensemble de test, et de conserver les 70 à 80 % restants pour l’entraînement. Scikit-learn propose une fonction simple pour effectuer cette séparation aléatoire :
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)
Merci pour vos commentaires !