前回の記事で、「暑さ指数」と「気象データ」の相関について、SVR(Support Vector Regression,サポートベクター回帰)でのハイパーパラメーターの設定の検討の事例として、ランダムサーチの事例を紹介しました。
今回は 同様の設定でのグリットサーチの例を紹介したいと思います。
まずはライブラリーのインポートです。前回とほぼ同様ですが、今回はランダムサーチの代わりにグリッドサーチ用に「GridSearchCV」をインポートしています。
続いてデータの読み込み、説明変数、目的変数の設定、訓練用データ及びテストデータの設定、説明変数の標準化を行っていますが、これらにについては前回と同様です。
ハイパーパラメーターの設定ですが、SVRでは、主として3種類のハイパーパラメータ(カーネル関数、正則化係数C、不感度係数ε)がありますが、今回はカーネル関数を「linear」に固定して行っています。代わりにガンマ値をパラメーターに設定してサーチを行っています。今回はグリッドサーチでそれぞれのパラメータ数を「3」に設定して探索を行っていますが、グリッドサーチの場合は網羅的に探索を行うのでパラメータ数を大きく設定しすぎると、探索の計算に膨大な時間がかかってしまうので注意が必要です。
評価値の算出と結果の表示の設定については、前回と同様です。
以上が実際にグリッドサーチを行った結果です。前回のランダムサーチとは異なり、ハイパーパラメータの値によって大きなばらつきはなく概ね良好な評価値が得られています。パラメーター数を限定し、あまり大きくパラメーターを変化させていないこともあり、大きな差は得られなかったというところかもしれません。使い方としては、前回のランダムサーチで大まかな傾向を掴み、グリッドサーチで詳細な探索を行うといった感じでしょうか。
以上、今回はSVRでの機械学習モデルの作成とグリッドサーチでのハイパーパラメーターの検討事例について紹介させていただきました。
現状、ハイパーパラメーターの探索においても機械学習的な手法も取り入れて行われてきていますので、次回はそのような事例について紹介したいと思います。