GridSearchCV で gamma と C を同時にチューニングする
前の演習では、デフォルトの C(1)を用いたとき、最適な gamma は 0.001 でした。この演習では、GridSearchCV を使って C と gamma の最適な組み合わせを探索します。
前の演習と同様に、2 対 not-2 の digits データセットはすでに読み込まれていますが、今回は X_train、y_train、X_test、y_test に分割されています。クロスバリデーションでは学習用データをさらに分割しますが、結果の妥当性を確認するために、別のテストセットを保持しておくのはよい考え方です。
この演習はコースの一部です
Python で学ぶ線形分類器
演習の手順
- 学習用データで
GridSearchCVを実行し、最良のハイパーパラメータを見つけてください。 - パラメータの最良値を出力してください。
- クロスバリデーションの手順で使用していないテストセットでの精度を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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(____))