Ottimizzare insieme gamma e C con GridSearchCV
Nell'esercizio precedente il valore migliore di gamma era 0.001 usando il valore predefinito di C, cioè 1. In questo esercizio cercherai la migliore combinazione di C e gamma usando GridSearchCV.
Come nell'esercizio precedente, l'insieme di dati delle cifre 2-vs-non-2 è già caricato, ma questa volta è suddiviso nelle variabili X_train, y_train, X_test e y_test. Anche se la convalida incrociata suddivide già il training set in parti, spesso è una buona idea tenere da parte un test set separato per assicurarti che i risultati della convalida incrociata siano sensati.
Questo esercizio fa parte del corso
Classificatori lineari in Python
Istruzioni dell'esercizio
- Esegui
GridSearchCVper trovare i migliori iperparametri usando il training set. - Stampa i valori migliori dei parametri.
- Stampa l'accuratezza sul test set, che non è stato usato durante la procedura di convalida incrociata.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Instantiate an RBF SVM
svm = SVC()
# Instantiate the GridSearchCV object and run the search
parameters = {'C':[0.1, 1, 10], 'gamma':[0.00001, 0.0001, 0.001, 0.01, 0.1]}
searcher = GridSearchCV(svm, ____)
____.fit(____)
# Report the best parameters and the corresponding score
print("Best CV params", searcher.best_params_)
print("Best CV accuracy", searcher.best_score_)
# Report the test accuracy using these best parameters
print("Test accuracy of best grid search hypers:", searcher.score(____))