Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Klassificering av Oskiljbara Data | Logistisk Regression
Klassificering med Python

bookUtmaning: Klassificering av Oskiljbara Data

Du kommer att använda följande dataset med två funktioner:

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

Om du kör koden nedan och tittar på det resulterande spridningsdiagrammet, kommer du att se att datasetet inte är linjärt separerbart:

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

Låt oss använda korsvalidering för att utvärdera en enkel logistisk regression på dessa data:

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

Som du kan se är vanlig logistisk regression inte lämplig för denna uppgift. Att använda polynomregression kan hjälpa till att förbättra modellens prestanda. Dessutom möjliggör användning av GridSearchCV att hitta den optimala C-parametern för bättre noggrannhet.

Denna uppgift använder också klassen Pipeline. Du kan se det som en sekvens av förbehandlingssteg. Dess metod .fit_transform() tillämpar sekventiellt .fit_transform() på varje steg i pipelinen.

Uppgift

Swipe to start coding

Du får ett dataset beskrivet som en DataFrame i variabeln df.

  • Skapa en pipeline som innehåller polynomfunktioner av grad 2 för X och skalas, och spara den resulterande pipelinen i variabeln pipe.
  • Skapa en ordbok param_grid med värdena [0.01, 0.1, 1, 10, 100] för hyperparametern C.
  • Initiera och träna ett GridSearchCV-objekt och spara det tränade objektet i variabeln grid_cv.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 6
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookUtmaning: Klassificering av Oskiljbara Data

Svep för att visa menyn

Du kommer att använda följande dataset med två funktioner:

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

Om du kör koden nedan och tittar på det resulterande spridningsdiagrammet, kommer du att se att datasetet inte är linjärt separerbart:

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

Låt oss använda korsvalidering för att utvärdera en enkel logistisk regression på dessa data:

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

Som du kan se är vanlig logistisk regression inte lämplig för denna uppgift. Att använda polynomregression kan hjälpa till att förbättra modellens prestanda. Dessutom möjliggör användning av GridSearchCV att hitta den optimala C-parametern för bättre noggrannhet.

Denna uppgift använder också klassen Pipeline. Du kan se det som en sekvens av förbehandlingssteg. Dess metod .fit_transform() tillämpar sekventiellt .fit_transform() på varje steg i pipelinen.

Uppgift

Swipe to start coding

Du får ett dataset beskrivet som en DataFrame i variabeln df.

  • Skapa en pipeline som innehåller polynomfunktioner av grad 2 för X och skalas, och spara den resulterande pipelinen i variabeln pipe.
  • Skapa en ordbok param_grid med värdena [0.01, 0.1, 1, 10, 100] för hyperparametern C.
  • Initiera och träna ett GridSearchCV-objekt och spara det tränade objektet i variabeln grid_cv.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 6
single

single

some-alt