あるケミストの独り言(winchemwinの日記)

ケミスト(化学者)の視点で、面白そうな情報(シミュレーション関係など)を発信

機械学習による予測モデルの作成(暑さ指数-東京)その3

前回の記事で、「暑さ指数」と「気象データ」の相関について、SVRSupport Vector Regression,サポートベクター回帰)でのハイパーパラメーターの設定の検討の事例として、ランダムサーチの事例を紹介しました。

 今回は 同様の設定でのグリットサーチの例を紹介したいと思います。

コード1 ライブラリーのインポート

 まずはライブラリーのインポートです。前回とほぼ同様ですが、今回はランダムサーチの代わりにグリッドサーチ用に「GridSearchCV」をインポートしています。

コード2 データ読み込み、前処理

コード3 説明変数の標準化

 続いてデータの読み込み、説明変数、目的変数の設定、訓練用データ及びテストデータの設定、説明変数の標準化を行っていますが、これらにについては前回と同様です。

 

コード4 ハイパーパラメーターの設定等

 ハイパーパラメーターの設定ですが、SVRでは、主として3種類のハイパーパラメータ(カーネル関数、正則化係数C、不感度係数ε)がありますが、今回はカーネル関数を「linear」に固定して行っています。代わりにガンマ値をパラメーターに設定してサーチを行っています。今回はグリッドサーチでそれぞれのパラメータ数を「3」に設定して探索を行っていますが、グリッドサーチの場合は網羅的に探索を行うのでパラメータ数を大きく設定しすぎると、探索の計算に膨大な時間がかかってしまうので注意が必要です。

 

コード5 評価値の算出

 

 評価値の算出と結果の表示の設定については、前回と同様です。

 

コード6 最適化過程、結果の表示

  

グリッドサーチの結果1

グリッドサーチの結果2(続き)

 以上が実際にグリッドサーチを行った結果です。前回のランダムサーチとは異なり、ハイパーパラメータの値によって大きなばらつきはなく概ね良好な評価値が得られています。パラメーター数を限定し、あまり大きくパラメーターを変化させていないこともあり、大きな差は得られなかったというところかもしれません。使い方としては、前回のランダムサーチで大まかな傾向を掴み、グリッドサーチで詳細な探索を行うといった感じでしょうか。

 以上、今回はSVRでの機械学習モデルの作成とグリッドサーチでのハイパーパラメーターの検討事例について紹介させていただきました。

 現状、ハイパーパラメーターの探索においても機械学習的な手法も取り入れて行われてきていますので、次回はそのような事例について紹介したいと思います。