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
Abschnitt 2. Kapitel 6
single

single

Herausforderung: Klassifizierung Untrennbarer Daten

Swipe um das Menü anzuzeigen

Verwendung des folgenden Datensatzes mit zwei Merkmalen:

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

Wenn der untenstehende Code ausgeführt und das resultierende Streudiagramm betrachtet wird, zeigt sich, 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()

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}')

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 bessere Genauigkeit zu finden.

GridSearchCV-Klasse

Diese Aufgabe verwendet auch die Pipeline-Klasse. Sie können sie sich als Abfolge von Vorverarbeitungsschritten vorstellen. Die Methode .fit_transform() wendet .fit_transform() nacheinander auf jeden Schritt in der Pipeline an.

Aufgabe

Wischen, um mit dem Codieren zu beginnen

Ein Datensatz wird als DataFrame in der Variablen df bereitgestellt.

  • Erstellen einer Pipeline, die die Polynom-Features zweiten Grades von X enthält, skaliert wird und speichern Sie die resultierende Pipeline in der Variablen pipe.
  • Erstellen eines param_grid-Dictionaries mit den Werten [0.01, 0.1, 1, 10, 100] für den Hyperparameter C.
  • Initialisieren und Trainieren eines GridSearchCV-Objekts und Speichern des trainierten Objekts 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

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

some-alt