Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Gridsearchcv | Mallintaminen
Koneoppimisen Perusteet Scikit-learnilla

bookGridsearchcv

Nyt on aika parantaa mallin suorituskykyä tunnistamalla sopivimmat hyperparametrit.

Tätä prosessia kutsutaan hyperparametrien viritykseksi. Vakiomenetelmä on testata erilaisia hyperparametriarvoja, laskea kunkin ristiinvalidointipisteet ja valita arvo, joka tuottaa korkeimman pistemäärän.

Tämä prosessi voidaan toteuttaa käyttämällä GridSearchCV-luokkaa, joka löytyy sklearn.model_selection -moduulista.

Kun luodaan GridSearchCV-objekti, annetaan malli ja parametriverkko (param_grid), ja halutessa määritellään myös arviointimetriikka ja poimintojen määrä. Parametriverkko on sanakirja testattavista hyperparametriarvoista. Esimerkiksi:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Tämä kokoonpano arvioi mallin 1, 3, 5 ja 7 naapurilla.

Kun GridSearchCV on alustettu, se opetetaan metodilla .fit(X, y).

  • Paras malli (korkein ristiinvalidointipiste) löytyy attribuutista .best_estimator_.
  • Vastaava ristiinvalidointipiste on nähtävissä attribuutista .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Seuraava vaihe on ottaa käyttöön best_estimator_ ja kouluttaa se koko aineistolla, koska sille on jo löydetty parhaat parametrit. Tämä vaihe suoritetaan automaattisesti GridSearchCV:n toimesta.

Tämän seurauksena grid_search-objekti itsessään on koulutettu malli optimaalisilla parametreilla. Sitä voidaan käyttää suoraan ennustamiseen ja arviointiin .predict()- ja .score()-metodien avulla.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Kun olet kouluttanut GridSearchCV-olion, voit käyttää sitä ennusteiden tekemiseen .predict()-metodilla. Onko tämä oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

What other hyperparameters can I tune with GridSearchCV?

How do I interpret the results from GridSearchCV?

Can you explain how cross-validation works in this context?

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Pyyhkäise näyttääksesi valikon

Nyt on aika parantaa mallin suorituskykyä tunnistamalla sopivimmat hyperparametrit.

Tätä prosessia kutsutaan hyperparametrien viritykseksi. Vakiomenetelmä on testata erilaisia hyperparametriarvoja, laskea kunkin ristiinvalidointipisteet ja valita arvo, joka tuottaa korkeimman pistemäärän.

Tämä prosessi voidaan toteuttaa käyttämällä GridSearchCV-luokkaa, joka löytyy sklearn.model_selection -moduulista.

Kun luodaan GridSearchCV-objekti, annetaan malli ja parametriverkko (param_grid), ja halutessa määritellään myös arviointimetriikka ja poimintojen määrä. Parametriverkko on sanakirja testattavista hyperparametriarvoista. Esimerkiksi:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Tämä kokoonpano arvioi mallin 1, 3, 5 ja 7 naapurilla.

Kun GridSearchCV on alustettu, se opetetaan metodilla .fit(X, y).

  • Paras malli (korkein ristiinvalidointipiste) löytyy attribuutista .best_estimator_.
  • Vastaava ristiinvalidointipiste on nähtävissä attribuutista .best_score_.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Seuraava vaihe on ottaa käyttöön best_estimator_ ja kouluttaa se koko aineistolla, koska sille on jo löydetty parhaat parametrit. Tämä vaihe suoritetaan automaattisesti GridSearchCV:n toimesta.

Tämän seurauksena grid_search-objekti itsessään on koulutettu malli optimaalisilla parametreilla. Sitä voidaan käyttää suoraan ennustamiseen ja arviointiin .predict()- ja .score()-metodien avulla.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Kun olet kouluttanut GridSearchCV-olion, voit käyttää sitä ennusteiden tekemiseen .predict()-metodilla. Onko tämä oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 6
some-alt