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 virittämiseksi. 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 moduulista sklearn.model_selection.

Kun luodaan GridSearchCV-olio, annetaan malli ja parametriverkko (param_grid), ja tarvittaessa määritellään pisteytysmetriikka sekä taitosten 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 naapurin arvoilla.

GridSearchCV-olion alustamisen jälkeen 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 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

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 virittämiseksi. 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 moduulista sklearn.model_selection.

Kun luodaan GridSearchCV-olio, annetaan malli ja parametriverkko (param_grid), ja tarvittaessa määritellään pisteytysmetriikka sekä taitosten 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 naapurin arvoilla.

GridSearchCV-olion alustamisen jälkeen 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 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