Utmaning: Klassificering av Oskiljbara Data
Du kommer att använda följande dataset med två funktioner:
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())
Om du kör koden nedan och tittar på det resulterande spridningsdiagrammet, kommer du att se att datasetet inte är linjärt separerbart:
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()
Låt oss använda korsvalidering för att utvärdera en enkel logistisk regression på dessa data:
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}')
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.
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
Xoch skalas, och spara den resulterande pipelinen i variabelnpipe. - Skapa en ordbok
param_gridmed värdena[0.01, 0.1, 1, 10, 100]för hyperparameternC. - Initiera och träna ett
GridSearchCV-objekt och spara det tränade objektet i variabelngrid_cv.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Utmaning: Klassificering av Oskiljbara Data
Svep för att visa menyn
Du kommer att använda följande dataset med två funktioner:
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())
Om du kör koden nedan och tittar på det resulterande spridningsdiagrammet, kommer du att se att datasetet inte är linjärt separerbart:
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()
Låt oss använda korsvalidering för att utvärdera en enkel logistisk regression på dessa data:
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}')
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.
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
Xoch skalas, och spara den resulterande pipelinen i variabelnpipe. - Skapa en ordbok
param_gridmed värdena[0.01, 0.1, 1, 10, 100]för hyperparameternC. - Initiera och träna ett
GridSearchCV-objekt och spara det tränade objektet i variabelngrid_cv.
Lösning
Tack för dina kommentarer!
single