Gridsearchcv
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_.
123456789101112131415import 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_)
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.
123456789101112131415import 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))
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
Gridsearchcv
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_.
123456789101112131415import 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_)
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.
123456789101112131415import 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))
Kiitos palautteestasi!