前回の記事は【Azure ML StudioでのTwo class decision forestのパラメータチューニング】を説明しました。
今回の記事では、Azure ML Studioで機械学習モデルのパラメータ最適化の「Tune Hyper Parameter」のお話になります
各アルゴリズムは既定のパラメータを利用して、実験しているため、最適化されていません。ただし、どのパラメータを変更すればいいのは手間になります。そういう時に利用するモジュールが、「Tune Hyper Parameter」です。このモジュールは、適当に何個かのパラメータを用意し、それぞれの組み合わせで試した後、一番精度の高かったパラメータの組み合わせを学習モデルとして利用できるようになります。そのため各パラメータの最適値を見つける時に、用います。
前回のモデルはTwo class decision forestで献血の過去のデータから、献血の分類モデルを作成しました。
テストデータのAUCは0.632の結果の結果から改善できるか試していきます。
ハイパーパラメータ最適化
「Tune Hyper Parameter」とは、適当に何個かのパラメータを用意し、それぞれの組み合わせで試した後、一番精度の高かったパラメータの組み合わせを学習モデルとして利用できます。
設定するときは、検索範囲を定義し、無作為に選択された有限数のパラメータを使用するか、定義したパラメータ空間を網羅した検索を行います。
Random sweep(ランダムスイープ)決められた回数で、値の範囲を指定し、ランダムに検索されます。
Grid sweep(グリッドスイープ)このオプションは、指定した値の範囲内のすべてのパラメータの組み合わせで、値を検索します。このオプションでチューニングを開始すると、複数のモデルがこれらのパラメータの組み合わせを使用して訓練されます。
Entire grid(グリッド全体)全ての組み合わせで、検索していきます。このオプションは最も徹底的だと考えられますが、最も時間がかかります。
Random grid(ランダムグリッド)このオプションを選択すると、すべての組み合わせの中から、指定した回数だけ評価を行っていきます。
今回は「Random grid」を利用します。
Maximum number of runs on randomは120に設定しました。実際に120種類の組み合わせで試してみました。各組合せの結果は「Tune Model Hyperparameters」を右クリックし、「Sweep Results」>「Visualize」で確認できます。
パラメータはAccuracy, Precision, Recall, F-score, AUC, Average Log less and Train Log Lossを設定することができます。今回はAUCに設定します。
「Tune Model Hyperparameters」で、パラメーターのセットに対応するすべてのモデルを作成し、さまざまなメトリックを評価した後、選ばれたメトリックに基づいて最適なトレーニング済みのモデルを作成します。テストデータのAUCは0.709までに上がりました。