Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Erottamattoman Datan Luokittelu | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Ohjatun Oppimisen Perusteet

bookHaaste: Erottamattoman Datan Luokittelu

Tulet käyttämään seuraavaa aineistoa, jossa on kaksi ominaisuutta:

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

Jos suoritat alla olevan koodin ja tarkastelet tuloksena saatavaa hajontakuviota, huomaat, että aineisto ei ole lineaarisesti eroteltavissa:

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

Käytetään ristivalidointia yksinkertaisen logistisen regressiomallin arviointiin tällä datalla:

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

Kuten huomaat, tavallinen logistinen regressio ei sovellu tähän tehtävään. Polynomiregressio voi parantaa mallin suorituskykyä. Lisäksi GridSearchCV:n käyttö mahdollistaa optimaalisen C-parametrin löytämisen paremman tarkkuuden saavuttamiseksi.

Konstruktori:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — mallin olio;
  • param_grid — sanakirja, jossa on haettavat parametrien arvot;
  • scoring — metriikka, jota käytetään ristiinvalidoinnin pisteytykseen;
  • cv — taitosten määrä (oletuksena 5);

Menetelmät:

  • fit(X, y) — mallien koulutus käyttäen X, y;
  • predict(X) — luokan ennustaminen X:lle;
  • score(X, y) — palauttaa tarkkuuden X, y -joukolle;

Attribuutit:

  • best_estimator_ — paras pistemäärän saanut mallin olio;
  • best_score_best_estimator_:n pistemäärä.

Tässä tehtävässä käytetään myös Pipeline-luokkaa. Voit ajatella sitä esikäsittelyvaiheiden jonomaisena sarjana. Sen .fit_transform()-metodi soveltaa peräkkäin .fit_transform()-toimintoa jokaisessa putkiston vaiheessa.

Tehtävä

Swipe to start coding

Sinulle on annettu tietojoukko, joka on kuvattu DataFrame-muodossa muuttujassa df.

  • Luo putki (pipeline), joka sisältää muuttujan X toisen asteen polynomiset piirteet ja skaalaa ne. Tallenna tuloksena syntyvä putki muuttujaan pipe.
  • Luo param_grid-sanakirja, jossa [0.01, 0.1, 1, 10, 100]-hyperparametrin arvoina ovat C.
  • Alusta ja kouluta GridSearchCV-olio ja tallenna koulutettu olio muuttujaan grid_cv.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 26
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookHaaste: Erottamattoman Datan Luokittelu

Pyyhkäise näyttääksesi valikon

Tulet käyttämään seuraavaa aineistoa, jossa on kaksi ominaisuutta:

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

Jos suoritat alla olevan koodin ja tarkastelet tuloksena saatavaa hajontakuviota, huomaat, että aineisto ei ole lineaarisesti eroteltavissa:

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

Käytetään ristivalidointia yksinkertaisen logistisen regressiomallin arviointiin tällä datalla:

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

Kuten huomaat, tavallinen logistinen regressio ei sovellu tähän tehtävään. Polynomiregressio voi parantaa mallin suorituskykyä. Lisäksi GridSearchCV:n käyttö mahdollistaa optimaalisen C-parametrin löytämisen paremman tarkkuuden saavuttamiseksi.

Konstruktori:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — mallin olio;
  • param_grid — sanakirja, jossa on haettavat parametrien arvot;
  • scoring — metriikka, jota käytetään ristiinvalidoinnin pisteytykseen;
  • cv — taitosten määrä (oletuksena 5);

Menetelmät:

  • fit(X, y) — mallien koulutus käyttäen X, y;
  • predict(X) — luokan ennustaminen X:lle;
  • score(X, y) — palauttaa tarkkuuden X, y -joukolle;

Attribuutit:

  • best_estimator_ — paras pistemäärän saanut mallin olio;
  • best_score_best_estimator_:n pistemäärä.

Tässä tehtävässä käytetään myös Pipeline-luokkaa. Voit ajatella sitä esikäsittelyvaiheiden jonomaisena sarjana. Sen .fit_transform()-metodi soveltaa peräkkäin .fit_transform()-toimintoa jokaisessa putkiston vaiheessa.

Tehtävä

Swipe to start coding

Sinulle on annettu tietojoukko, joka on kuvattu DataFrame-muodossa muuttujassa df.

  • Luo putki (pipeline), joka sisältää muuttujan X toisen asteen polynomiset piirteet ja skaalaa ne. Tallenna tuloksena syntyvä putki muuttujaan pipe.
  • Luo param_grid-sanakirja, jossa [0.01, 0.1, 1, 10, 100]-hyperparametrin arvoina ovat C.
  • Alusta ja kouluta GridSearchCV-olio ja tallenna koulutettu olio muuttujaan grid_cv.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 26
single

single

some-alt