Gridsearchcv
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_.
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 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.
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
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
Gridsearchcv
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_.
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 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.
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!