Défi : Classification de Données Non Séparables
Dans ce défi, vous disposez du jeu de données suivant :
1234import 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é.
12345import 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 :
123456789101112import 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 !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Résumer ce chapitre
Expliquer le code dans file
Expliquer pourquoi file ne résout pas la tâche
Awesome!
Completion rate improved to 3.57
Défi : Classification de Données Non Séparables
Glissez pour afficher le menu
Dans ce défi, vous disposez du jeu de données suivant :
1234import 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é.
12345import 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 :
123456789101112import 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 !
Awesome!
Completion rate improved to 3.57single