Kursinhalt
Klassifikation mit Python
Klassifikation mit Python
Herausforderung: Klassifizierung Nicht Trennbarer Daten
In dieser Herausforderung erhalten Sie den folgenden Datensatz:
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())
Hier ist sein Plot.
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'])
Der Datensatz ist sicherlich nicht linear trennbar. Schauen wir uns die Leistung der logistischen Regression an:
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())
Das Ergebnis ist schrecklich. Reguläre logistische Regression ist für diese Aufgabe nicht geeignet. Ihre Aufgabe ist es zu überprüfen, ob PolynomialFeatures
helfen wird. Um den besten C
-Parameter zu finden, verwenden Sie die GridSearchCV
-Klasse.
In dieser Herausforderung wird die Pipeline
verwendet. Sie können es sich als eine Liste von Vorverarbeitungsschritten vorstellen. Die Methode .fit_transform()
wendet .fit_transform()
nacheinander auf jedes Element an.
Swipe to start coding
Erstellen Sie ein logistisches Regressionsmodell mit polynomialen Merkmalen und finden Sie den besten C
-Parameter mit GridSearchCV
- Erstellen Sie eine Pipeline, um eine
X_poly
-Variable zu erstellen, die die polynomialen Merkmale zweiten Grades vonX
enthält und skaliert wird. - Erstellen Sie ein
param_grid
-Dictionary, um demGridSearchCV
mitzuteilen, dass Sie die Werte[0.01, 0.1, 1, 10, 100]
einesC
-Parameters ausprobieren möchten. - Initialisieren und trainieren Sie ein
GridSearchCV
-Objekt.
Lösung
Danke für Ihr Feedback!
Herausforderung: Klassifizierung Nicht Trennbarer Daten
In dieser Herausforderung erhalten Sie den folgenden Datensatz:
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())
Hier ist sein Plot.
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'])
Der Datensatz ist sicherlich nicht linear trennbar. Schauen wir uns die Leistung der logistischen Regression an:
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())
Das Ergebnis ist schrecklich. Reguläre logistische Regression ist für diese Aufgabe nicht geeignet. Ihre Aufgabe ist es zu überprüfen, ob PolynomialFeatures
helfen wird. Um den besten C
-Parameter zu finden, verwenden Sie die GridSearchCV
-Klasse.
In dieser Herausforderung wird die Pipeline
verwendet. Sie können es sich als eine Liste von Vorverarbeitungsschritten vorstellen. Die Methode .fit_transform()
wendet .fit_transform()
nacheinander auf jedes Element an.
Swipe to start coding
Erstellen Sie ein logistisches Regressionsmodell mit polynomialen Merkmalen und finden Sie den besten C
-Parameter mit GridSearchCV
- Erstellen Sie eine Pipeline, um eine
X_poly
-Variable zu erstellen, die die polynomialen Merkmale zweiten Grades vonX
enthält und skaliert wird. - Erstellen Sie ein
param_grid
-Dictionary, um demGridSearchCV
mitzuteilen, dass Sie die Werte[0.01, 0.1, 1, 10, 100]
einesC
-Parameters ausprobieren möchten. - Initialisieren und trainieren Sie ein
GridSearchCV
-Objekt.
Lösung
Danke für Ihr Feedback!