Contenu du cours
Classification Avec Python
Classification Avec Python
Défi : Classification de Données Non Séparables
Dans ce défi, vous disposez du jeu de données suivant :
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
Voici son tracé.
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y'])
Le jeu de données n'est certainement pas linéairement séparable. Regardons la performance de la régression logistique :
import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) print(cross_val_score(lr, X, y).mean())
Le résultat est terrible. La régression logistique classique n'est pas adaptée à cette tâche. Votre tâche est de vérifier si les PolynomialFeatures
aideront. Pour trouver le meilleur paramètre C
, vous utiliserez la classe GridSearchCV
.
Dans ce défi, le Pipeline
est utilisé. Vous pouvez le considérer comme une liste d'étapes de prétraitement. Sa méthode .fit_transform()
applique séquentiellement .fit_transform()
à chaque élément.
Swipe to start coding
Construisez un modèle de régression logistique avec des caractéristiques polynomiales et trouvez le meilleur paramètre C
en utilisant GridSearchCV
- Créez un pipeline pour créer une variable
X_poly
qui contiendra les caractéristiques polynomiales de degré 2 deX
et sera mise à l'échelle. - Créez un dictionnaire
param_grid
pour indiquer àGridSearchCV
que vous souhaitez essayer les valeurs[0.01, 0.1, 1, 10, 100]
d'un paramètreC
. - Initialisez et entraînez un objet
GridSearchCV
.
Solution
Merci pour vos commentaires !
Défi : Classification de Données Non Séparables
Dans ce défi, vous disposez du jeu de données suivant :
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
Voici son tracé.
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y'])
Le jeu de données n'est certainement pas linéairement séparable. Regardons la performance de la régression logistique :
import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) print(cross_val_score(lr, X, y).mean())
Le résultat est terrible. La régression logistique classique n'est pas adaptée à cette tâche. Votre tâche est de vérifier si les PolynomialFeatures
aideront. Pour trouver le meilleur paramètre C
, vous utiliserez la classe GridSearchCV
.
Dans ce défi, le Pipeline
est utilisé. Vous pouvez le considérer comme une liste d'étapes de prétraitement. Sa méthode .fit_transform()
applique séquentiellement .fit_transform()
à chaque élément.
Swipe to start coding
Construisez un modèle de régression logistique avec des caractéristiques polynomiales et trouvez le meilleur paramètre C
en utilisant GridSearchCV
- Créez un pipeline pour créer une variable
X_poly
qui contiendra les caractéristiques polynomiales de degré 2 deX
et sera mise à l'échelle. - Créez un dictionnaire
param_grid
pour indiquer àGridSearchCV
que vous souhaitez essayer les valeurs[0.01, 0.1, 1, 10, 100]
d'un paramètreC
. - Initialisez et entraînez un objet
GridSearchCV
.
Solution
Merci pour vos commentaires !