Utmaning: Välja det Bästa K-värdet
Som visats i tidigare kapitel kan modellens prediktioner variera beroende på värdet av k (antalet grannar). Vid konstruktion av en k-NN-modell är det viktigt att välja det k-värde som ger bäst prestanda.
En vanlig metod är att använda korsvalidering för att utvärdera modellens prestanda. Det går att köra en loop och beräkna korsvalideringspoäng för ett intervall av k-värden, och sedan välja det med högst poäng. Detta är den mest använda metoden.
För detta erbjuder sklearn
ett praktiskt verktyg: klassen GridSearchCV
.
param_grid
-parametern tar en dictionary där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att exempelvis testa värden från 1
till 99
för n_neighbors
kan du skriva:
param_grid = {'n_neighbors': range(1, 100)}
Genom att anropa .fit(X, y)
-metoden på GridSearchCV
-objektet kommer parametergriden att genomsökas för att hitta de bästa parametrarna och därefter tränas modellen om på hela datasettet med dessa bästa parametrar.
Du kan komma åt bästa poäng med attributet .best_score_
och göra prediktioner med den optimerade modellen med hjälp av .predict()
-metoden. På samma sätt kan du hämta bästa modellen själv med attributet .best_estimator_
.
Swipe to start coding
Du har fått Star Wars-betygsdatasetet lagrat som en DataFrame
i variabeln df
.
- Initiera
param_grid
som en ordbok som innehåller parameternn_neighbors
med värdena[3, 9, 18, 27]
. - Skapa ett
GridSearchCV
-objekt medparam_grid
och 4-faldig korsvalidering, träna det och spara det i variabelngrid_search
. - Hämta den bästa modellen från
grid_search
och spara den i variabelnbest_model
. - Hämta poängen för den bästa modellen och spara den i variabeln
best_score
.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.17
Utmaning: Välja det Bästa K-värdet
Svep för att visa menyn
Som visats i tidigare kapitel kan modellens prediktioner variera beroende på värdet av k (antalet grannar). Vid konstruktion av en k-NN-modell är det viktigt att välja det k-värde som ger bäst prestanda.
En vanlig metod är att använda korsvalidering för att utvärdera modellens prestanda. Det går att köra en loop och beräkna korsvalideringspoäng för ett intervall av k-värden, och sedan välja det med högst poäng. Detta är den mest använda metoden.
För detta erbjuder sklearn
ett praktiskt verktyg: klassen GridSearchCV
.
param_grid
-parametern tar en dictionary där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att exempelvis testa värden från 1
till 99
för n_neighbors
kan du skriva:
param_grid = {'n_neighbors': range(1, 100)}
Genom att anropa .fit(X, y)
-metoden på GridSearchCV
-objektet kommer parametergriden att genomsökas för att hitta de bästa parametrarna och därefter tränas modellen om på hela datasettet med dessa bästa parametrar.
Du kan komma åt bästa poäng med attributet .best_score_
och göra prediktioner med den optimerade modellen med hjälp av .predict()
-metoden. På samma sätt kan du hämta bästa modellen själv med attributet .best_estimator_
.
Swipe to start coding
Du har fått Star Wars-betygsdatasetet lagrat som en DataFrame
i variabeln df
.
- Initiera
param_grid
som en ordbok som innehåller parameternn_neighbors
med värdena[3, 9, 18, 27]
. - Skapa ett
GridSearchCV
-objekt medparam_grid
och 4-faldig korsvalidering, träna det och spara det i variabelngrid_search
. - Hämta den bästa modellen från
grid_search
och spara den i variabelnbest_model
. - Hämta poängen för den bästa modellen och spara den i variabeln
best_score
.
Lösning
Tack för dina kommentarer!
single