Uitdaging: Classificatie van Onscheidbare Gegevens
U gebruikt de volgende dataset met twee kenmerken:
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())
Als u de onderstaande code uitvoert en het resulterende spreidingsdiagram bekijkt, ziet u dat de dataset niet lineair scheidbaar is:
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()
Gebruik cross-validatie om een eenvoudige logistische regressie op deze gegevens te evalueren:
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}')
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.
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
Xbevat en geschaald wordt, en sla de resulterende pipeline op in de variabelepipe. - Maak een
param_grid-woordenboek aan met waarden[0.01, 0.1, 1, 10, 100]voor deC-hyperparameter. - Initialiseer en train een
GridSearchCV-object en sla het getrainde object op in de variabelegrid_cv.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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?
Awesome!
Completion rate improved to 4.17
Uitdaging: Classificatie van Onscheidbare Gegevens
Veeg om het menu te tonen
U gebruikt de volgende dataset met twee kenmerken:
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())
Als u de onderstaande code uitvoert en het resulterende spreidingsdiagram bekijkt, ziet u dat de dataset niet lineair scheidbaar is:
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()
Gebruik cross-validatie om een eenvoudige logistische regressie op deze gegevens te evalueren:
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}')
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.
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
Xbevat en geschaald wordt, en sla de resulterende pipeline op in de variabelepipe. - Maak een
param_grid-woordenboek aan met waarden[0.01, 0.1, 1, 10, 100]voor deC-hyperparameter. - Initialiseer en train een
GridSearchCV-object en sla het getrainde object op in de variabelegrid_cv.
Oplossing
Bedankt voor je feedback!
single