Großartig!
Completion Rate verbessert auf 4.17single
Herausforderung: Klassifizierung Untrennbarer Daten
Swipe um das Menü anzuzeigen
Sie werden den folgenden Datensatz mit zwei Merkmalen verwenden:
1234import 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 Sie den folgenden Code ausführen und das resultierende Streudiagramm betrachten, werden Sie feststellen, dass der Datensatz nicht linear trennbar ist:
123456import 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:
123456789101112131415161718import 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 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.
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
Xenthält und skaliert wird. Speichern Sie die resultierende Pipeline in der Variablenpipe. - Erstellen Sie ein
param_grid-Dictionary mit den Werten[0.01, 0.1, 1, 10, 100]für den HyperparameterC. - Initialisieren und trainieren Sie ein
GridSearchCV-Objekt und speichern Sie das trainierte Objekt in der Variablengrid_cv.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen