Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Classification de Données Non Séparables | Régression Logistique
Classification Avec Python
course content

Contenu du cours

Classification Avec Python

Classification Avec Python

1. Classificateur K-NN
2. Régression Logistique
3. Arbre de Décision
4. Forêt Aléatoire
5. Comparer les Modèles

book
Défi : Classification de Données Non Séparables

Dans ce défi, vous disposez du jeu de données suivant :

1234
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())
copy

Voici son tracé.

12345
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'])
copy

Le jeu de données n'est certainement pas linéairement séparable. Regardons la performance de la régression logistique :

123456789101112
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())
copy

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.

Tâche

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

  1. Créez un pipeline pour créer une variable X_poly qui contiendra les caractéristiques polynomiales de degré 2 de X et sera mise à l'échelle.
  2. 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ètre C.
  3. Initialisez et entraînez un objet GridSearchCV.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 6
toggle bottom row

book
Défi : Classification de Données Non Séparables

Dans ce défi, vous disposez du jeu de données suivant :

1234
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())
copy

Voici son tracé.

12345
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'])
copy

Le jeu de données n'est certainement pas linéairement séparable. Regardons la performance de la régression logistique :

123456789101112
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())
copy

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.

Tâche

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

  1. Créez un pipeline pour créer une variable X_poly qui contiendra les caractéristiques polynomiales de degré 2 de X et sera mise à l'échelle.
  2. 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ètre C.
  3. Initialisez et entraînez un objet GridSearchCV.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 6
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt