Frontière de Décision
Traçons les résultats de la régression logistique. Considérons l'exemple suivant avec deux variables :
Une fois la régression logistique construite, il est possible de tracer une frontière de décision. Celle-ci indique la région de chaque classe où de nouvelles instances sont prédites comme appartenant à cette classe. Par exemple, voici la frontière de décision de la régression logistique appliquée aux données ci-dessus :
On observe que la ligne sépare parfaitement les deux classes ici. Lorsque cela se produit, l'ensemble de données est qualifié de linéairement séparable. Cependant, ce n'est pas toujours le cas. Que se passerait-il si l'ensemble de données ressemblait à ceci :
Ci-dessus se trouve une frontière de décision pour un ensemble de données légèrement différent. Ici, les données ne sont pas linéairement séparables ; par conséquent, les prédictions faites par la régression logistique sont imparfaites. Malheureusement, par défaut, la régression logistique ne peut pas prédire des frontières de décision plus complexes, il s'agit donc de la meilleure prédiction possible.
Cependant, il faut se rappeler que la régression logistique est dérivée de la régression linéaire, qui propose une solution au problème d'un modèle trop simple. Cette solution est la régression polynomiale, et il est possible d'utiliser son équation pour calculer z afin d'obtenir une frontière de décision de forme plus complexe :
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Comme en régression polynomiale, il est possible d'utiliser le transformateur PolynomialFeatures pour ajouter des termes polynomiaux aux variables explicatives, ce qui aide le modèle à apprendre des schémas plus complexes.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Cette ligne transforme les variables explicatives originales dans X en ajoutant :
- Termes au carré (par exemple, x2) ;
- Termes d'interaction (par exemple, x1⋅x2 s'il y a plusieurs variables).
Par exemple, si X contient initialement deux variables : [x1,x2], alors après application de PolynomialFeatures(2, include_bias=False), on obtient : [x1,x2,x12,x1x2,x22]
Cela permet à des modèles comme la régression logistique de capturer des relations non linéaires et de produire des frontières de décision plus flexibles et courbées. Cependant, augmenter excessivement le degré peut conduire à un modèle qui s'ajuste trop bien aux données d'entraînement, un problème appelé surapprentissage. C'est pourquoi il est recommandé d'essayer d'abord des degrés faibles et d'évaluer le modèle avec soin.
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
Can you explain what a decision boundary is in more detail?
How does PolynomialFeatures help Logistic Regression with non-linear data?
What is overfitting and how can I prevent it when using polynomial features?
Awesome!
Completion rate improved to 4.17
Frontière de Décision
Glissez pour afficher le menu
Traçons les résultats de la régression logistique. Considérons l'exemple suivant avec deux variables :
Une fois la régression logistique construite, il est possible de tracer une frontière de décision. Celle-ci indique la région de chaque classe où de nouvelles instances sont prédites comme appartenant à cette classe. Par exemple, voici la frontière de décision de la régression logistique appliquée aux données ci-dessus :
On observe que la ligne sépare parfaitement les deux classes ici. Lorsque cela se produit, l'ensemble de données est qualifié de linéairement séparable. Cependant, ce n'est pas toujours le cas. Que se passerait-il si l'ensemble de données ressemblait à ceci :
Ci-dessus se trouve une frontière de décision pour un ensemble de données légèrement différent. Ici, les données ne sont pas linéairement séparables ; par conséquent, les prédictions faites par la régression logistique sont imparfaites. Malheureusement, par défaut, la régression logistique ne peut pas prédire des frontières de décision plus complexes, il s'agit donc de la meilleure prédiction possible.
Cependant, il faut se rappeler que la régression logistique est dérivée de la régression linéaire, qui propose une solution au problème d'un modèle trop simple. Cette solution est la régression polynomiale, et il est possible d'utiliser son équation pour calculer z afin d'obtenir une frontière de décision de forme plus complexe :
z=β0+β1x1+β2x2+β3x12+β4x1x2+β5x22Comme en régression polynomiale, il est possible d'utiliser le transformateur PolynomialFeatures pour ajouter des termes polynomiaux aux variables explicatives, ce qui aide le modèle à apprendre des schémas plus complexes.
from sklearn.preprocessing import PolynomialFeatures
X_poly = PolynomialFeatures(2, include_bias=False).fit_transform(X)
Cette ligne transforme les variables explicatives originales dans X en ajoutant :
- Termes au carré (par exemple, x2) ;
- Termes d'interaction (par exemple, x1⋅x2 s'il y a plusieurs variables).
Par exemple, si X contient initialement deux variables : [x1,x2], alors après application de PolynomialFeatures(2, include_bias=False), on obtient : [x1,x2,x12,x1x2,x22]
Cela permet à des modèles comme la régression logistique de capturer des relations non linéaires et de produire des frontières de décision plus flexibles et courbées. Cependant, augmenter excessivement le degré peut conduire à un modèle qui s'ajuste trop bien aux données d'entraînement, un problème appelé surapprentissage. C'est pourquoi il est recommandé d'essayer d'abord des degrés faibles et d'évaluer le modèle avec soin.
Merci pour vos commentaires !