Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Klassifizierung Nicht Trennbarer Daten | Logistische Regression
Klassifikation mit Python
course content

Kursinhalt

Klassifikation mit Python

Klassifikation mit Python

1. K-NN Klassifikator
2. Logistische Regression
3. Entscheidungsbaum
4. Random Forest
5. Modelle Vergleichen

book
Herausforderung: Klassifizierung Nicht Trennbarer Daten

In dieser Herausforderung erhalten Sie den folgenden Datensatz:

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

Hier ist sein Plot.

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

Der Datensatz ist sicherlich nicht linear trennbar. Schauen wir uns die Leistung der logistischen Regression an:

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

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.

Aufgabe

Swipe to start coding

Erstellen Sie ein logistisches Regressionsmodell mit polynomialen Merkmalen und finden Sie den besten C-Parameter mit GridSearchCV

  1. Erstellen Sie eine Pipeline, um eine X_poly-Variable zu erstellen, die die polynomialen Merkmale zweiten Grades von X enthält und skaliert wird.
  2. Erstellen Sie ein param_grid-Dictionary, um dem GridSearchCV mitzuteilen, dass Sie die Werte [0.01, 0.1, 1, 10, 100] eines C-Parameters ausprobieren möchten.
  3. Initialisieren und trainieren Sie ein GridSearchCV-Objekt.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
toggle bottom row

book
Herausforderung: Klassifizierung Nicht Trennbarer Daten

In dieser Herausforderung erhalten Sie den folgenden Datensatz:

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

Hier ist sein Plot.

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

Der Datensatz ist sicherlich nicht linear trennbar. Schauen wir uns die Leistung der logistischen Regression an:

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

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.

Aufgabe

Swipe to start coding

Erstellen Sie ein logistisches Regressionsmodell mit polynomialen Merkmalen und finden Sie den besten C-Parameter mit GridSearchCV

  1. Erstellen Sie eine Pipeline, um eine X_poly-Variable zu erstellen, die die polynomialen Merkmale zweiten Grades von X enthält und skaliert wird.
  2. Erstellen Sie ein param_grid-Dictionary, um dem GridSearchCV mitzuteilen, dass Sie die Werte [0.01, 0.1, 1, 10, 100] eines C-Parameters ausprobieren möchten.
  3. Initialisieren und trainieren Sie ein GridSearchCV-Objekt.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt