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

bookHerausforderung: Klassifizierung Untrennbarer Daten

Sie werden den folgenden Datensatz mit zwei Merkmalen verwenden:

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

Wenn Sie den folgenden Code ausführen und das resultierende Streudiagramm betrachten, werden Sie feststellen, dass der Datensatz nicht linear trennbar ist:

123456
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']) plt.show()
copy

Verwendung von Cross-Validation zur Bewertung einer einfachen logistischen Regression auf diesen Daten:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt 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) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Wie Sie sehen, ist die reguläre logistische Regression für diese Aufgabe nicht geeignet. Die Verwendung von polynomialer Regression kann die Modellleistung verbessern. Zusätzlich ermöglicht der Einsatz von GridSearchCV, den optimalen C-Parameter für eine höhere Genauigkeit zu finden.

Diese Aufgabe verwendet außerdem die Klasse Pipeline. Sie kann als Abfolge von Vorverarbeitungsschritten betrachtet werden. Die Methode .fit_transform() wendet .fit_transform() nacheinander auf jeden Schritt in der Pipeline an.

Aufgabe

Swipe to start coding

Ihnen wird ein Datensatz zur Verfügung gestellt, der als DataFrame in der Variablen df beschrieben ist.

  • Erstellen Sie eine Pipeline, die die polynomialen Merkmale zweiten Grades von X enthält und skaliert wird. Speichern Sie die resultierende Pipeline in der Variablen pipe.
  • Erstellen Sie ein param_grid-Dictionary mit den Werten [0.01, 0.1, 1, 10, 100] für den Hyperparameter C.
  • Initialisieren und trainieren Sie ein GridSearchCV-Objekt und speichern Sie das trainierte Objekt in der Variablen grid_cv.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how to use polynomial regression with this dataset?

How does GridSearchCV help in finding the optimal C parameter?

What is the purpose of using a Pipeline in this context?

close

Awesome!

Completion rate improved to 4.17

bookHerausforderung: Klassifizierung Untrennbarer Daten

Swipe um das Menü anzuzeigen

Sie werden den folgenden Datensatz mit zwei Merkmalen verwenden:

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

Wenn Sie den folgenden Code ausführen und das resultierende Streudiagramm betrachten, werden Sie feststellen, dass der Datensatz nicht linear trennbar ist:

123456
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']) plt.show()
copy

Verwendung von Cross-Validation zur Bewertung einer einfachen logistischen Regression auf diesen Daten:

123456789101112131415161718
import pandas as pd import matplotlib.pyplot as plt 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) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
copy

Wie Sie sehen, ist die reguläre logistische Regression für diese Aufgabe nicht geeignet. Die Verwendung von polynomialer Regression kann die Modellleistung verbessern. Zusätzlich ermöglicht der Einsatz von GridSearchCV, den optimalen C-Parameter für eine höhere Genauigkeit zu finden.

Diese Aufgabe verwendet außerdem die Klasse Pipeline. Sie kann als Abfolge von Vorverarbeitungsschritten betrachtet werden. Die Methode .fit_transform() wendet .fit_transform() nacheinander auf jeden Schritt in der Pipeline an.

Aufgabe

Swipe to start coding

Ihnen wird ein Datensatz zur Verfügung gestellt, der als DataFrame in der Variablen df beschrieben ist.

  • Erstellen Sie eine Pipeline, die die polynomialen Merkmale zweiten Grades von X enthält und skaliert wird. Speichern Sie die resultierende Pipeline in der Variablen pipe.
  • Erstellen Sie ein param_grid-Dictionary mit den Werten [0.01, 0.1, 1, 10, 100] für den Hyperparameter C.
  • Initialisieren und trainieren Sie ein GridSearchCV-Objekt und speichern Sie das trainierte Objekt in der Variablen grid_cv.

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
single

single

some-alt