Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Classificatie van Onscheidbare Gegevens | Logistische Regressie
Classificatie met Python

bookUitdaging: Classificatie van Onscheidbare Gegevens

U gebruikt de volgende dataset met twee kenmerken:

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

Als u de onderstaande code uitvoert en het resulterende spreidingsdiagram bekijkt, ziet u dat de dataset niet lineair scheidbaar is:

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

Gebruik cross-validatie om een eenvoudige logistische regressie op deze gegevens te evalueren:

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

Zoals je kunt zien, is reguliere Logistische Regressie niet geschikt voor deze taak. Het gebruik van polynomiale regressie kan helpen om de prestaties van het model te verbeteren. Daarnaast maakt het toepassen van GridSearchCV het mogelijk om de optimale C-parameter te vinden voor een betere nauwkeurigheid.

Deze taak maakt ook gebruik van de Pipeline-klasse. Dit kun je zien als een reeks van preprocessing-stappen. De .fit_transform()-methode past achtereenvolgens .fit_transform() toe op elke stap in de pipeline.

Taak

Swipe to start coding

Je krijgt een dataset aangeboden die wordt beschreven als een DataFrame in de variabele df.

  • Maak een pipeline die de polynomiale features van graad 2 van X bevat en geschaald wordt, en sla de resulterende pipeline op in de variabele pipe.
  • Maak een param_grid-woordenboek aan met waarden [0.01, 0.1, 1, 10, 100] voor de C-hyperparameter.
  • Initialiseer en train een GridSearchCV-object en sla het getrainde object op in de variabele grid_cv.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookUitdaging: Classificatie van Onscheidbare Gegevens

Veeg om het menu te tonen

U gebruikt de volgende dataset met twee kenmerken:

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

Als u de onderstaande code uitvoert en het resulterende spreidingsdiagram bekijkt, ziet u dat de dataset niet lineair scheidbaar is:

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

Gebruik cross-validatie om een eenvoudige logistische regressie op deze gegevens te evalueren:

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

Zoals je kunt zien, is reguliere Logistische Regressie niet geschikt voor deze taak. Het gebruik van polynomiale regressie kan helpen om de prestaties van het model te verbeteren. Daarnaast maakt het toepassen van GridSearchCV het mogelijk om de optimale C-parameter te vinden voor een betere nauwkeurigheid.

Deze taak maakt ook gebruik van de Pipeline-klasse. Dit kun je zien als een reeks van preprocessing-stappen. De .fit_transform()-methode past achtereenvolgens .fit_transform() toe op elke stap in de pipeline.

Taak

Swipe to start coding

Je krijgt een dataset aangeboden die wordt beschreven als een DataFrame in de variabele df.

  • Maak een pipeline die de polynomiale features van graad 2 van X bevat en geschaald wordt, en sla de resulterende pipeline op in de variabele pipe.
  • Maak een param_grid-woordenboek aan met waarden [0.01, 0.1, 1, 10, 100] voor de C-hyperparameter.
  • Initialiseer en train een GridSearchCV-object en sla het getrainde object op in de variabele grid_cv.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
single

single

some-alt