VARISTAでのハイパーパラメータの最適化と実験管理 Optuna編

PUBLISHED
2021.03.10 (水)
CATEGORY
チュートリアル
TOPIC
機械学習
READING TIME
16分14秒

概要

機械学習モデルを作成するときに欠かせないの手順の一つがハイパーパラメータの最適化です。
ハイパーパラメータの最適化は、モデル作成時に設定したパラメータやその時のスコア、データセットは何を使ったのか、などの実験を管理するコストが発生します。
Excelなどで管理する場合もありますが、Hydra, MLFlow, Optuna, Gitなどを組み合わせて行うケースが多いと思います。
しかし、それぞれのツールのセットアップやバージョン管理、コードのメンテナンスが発生して、本来の目的の最適なモデルを作成することではなく、管理する事に時間が取られてしまいます。

VARISTAを使うことで、管理にかかる工数を圧縮してモデルの作成やビジネス課題を解決することに時間を割くことができるようになります。

ここでは、VARISTAでOptunaを使ったハイパーパラメータの最適化とモデルの比較を行う方法をご紹介します。
チュートリアル形式になっていますので、ぜひデータを使ってお試しください。

データの用意

今回使うデータセットはKaggleにて公開されている「IBM HR Analytics Employee Attrition & Performance」で、社員の離職につながる要因を探ることを目的に作られたデータです。
(IBMのデータサイエンティストが作成した架空のデータセットです。)
IBM HR Analytics Employee Attrition & Performance

なお、本記事はパラメータチューニングの手順紹介にフォーカスするため、特徴量エンジニアリングなどは行わずオリジナルのデータセットでモデルを作成します。

初めてVARISTAを使う方は、以下を参考にプロジェクトを作成後、データアップロードまで終えてください。
ドキュメント › プロジェクトの作成

データセットは、1470インスタンス、34の説明変数で構成されています。
目的変数は Attrition (退職)です。
VARISTA Blog HyperParameterTuning 000

モデルの作成

まずは、パラメータチューニングをしないでモデルを作成してみましょう。
VARISTAではモデルを作成するときにテンプレートを使用しますので、以下の手順で学習テンプレートを作成して編集します。

学習テンプレートの複製と編集

今回は、LightGBMを使いパラメータチューニングを行いますので、LightGBMを使用するテンプレートを作成します。

モデリング › テンプレート(タブ)へと移動し、XGBoost Classifierを 複製 します。
VARISTA Blog HyperParameterTuning 001

複製されたテンプレートは、カスタムテンプレートセクションにありますので、選択して詳細を確認します。
VARISTA Blog HyperParameterTuning 002

続いて、設定を以下の通りに変更します。

  • 基本設定 › 検証データの分割設定 › 分割サイズ : 0.2
  • モデル設定 › 交差検証設定 › n_splits : 5
  • アルゴリズム: LightGBM Classifier

VARISTA Blog HyperParameterTuning 003

最後にテンプレートを保存します。名前は__LightGBM Classifier__にします。
VARISTA Blog HyperParameterTuning 004

モデルの作成

先ほど作成したLightGBM Classifierを使いモデルを作成してみましょう。

モデリング › モデル(タブ)へと移動し、新規モデルを選択します。
VARISTA Blog HyperParameterTuning 005

続いて、アップロードしたデータを選択し、ターゲットがAttritionに、テンプレートにLightGBM Classifierを選択して、作成を選択します。
VARISTA Blog HyperParameterTuning 006

学習は10秒程度で完了し、モデルリストに作成されたモデルが表示されています。
VARISTA Blog HyperParameterTuning 007

モデルをクリックしてメトリクスを確認します。
VARISTA Blog HyperParameterTuning 008

Optunaを使用したハイパーパラメータの最適化

では、ここからOptunaを使いハイパーパラメータの最適化を行ってみます。
以下の手順で、Optuna用の学習テンプレートを作成します。

Optuna用に学習テンプレートの複製と編集

先ほどと同様の操作で、LightGBM Classifierのテンプレートを複製します。
複製されたテンプレートを選択して編集します。
VARISTA Blog HyperParameterTuning 009

変更するテンプレートの値は以下の通りとし、その他の設定はデフォルトのまま行います。

  • パラメータ › AutoTune: TPE Optimization with Optuna
    パラメータチューニングにOptunaを使用します。
  • パラメータ › AutoTune Round: 10
    パラメータチューニングの試行回数を10回に設定します。
  • パラメータ › AutoTune Scoring: f1
    各試行において、クロスバリデーションを行う際のメトリクスを指定します。
  • パラメータ › AutoTune CV Settings n_splits: 5
    各試行において、クロスバリデーションを行う際の分割数を指定します。
  • パラメータ › num_leaves: 256, 512
    LightGBMのLeavesの探索範囲を設定します。

VARISTA Blog HyperParameterTuning 010

テンプレート名はLightGBM Optuna Classifierとします。
VARISTA Blog HyperParameterTuning 011

Optunaを使ったモデルの作成

先ほどのモデル作成の手順と同様に、モデルタブから新規モデルを選択します。
今度はテンプレートをLightGBM Optuna Classifierに設定して学習を開始します。

モデルの確認

パラメータ探索の試行回数を少なく設定したので、十数秒で学習が完了してモデルが生成されます。
F1スコアを確認するとスコアが改善されていることがみて取れます。
VARISTA Blog HyperParameterTuning 012

パラメータチューニング履歴の確認

実際に、試行したハイパーパラメータを確認してみたいと思います。
モデルをクリックして、アルゴリズムタブを選択します。
VARISTA Blog HyperParameterTuning 013
Selected Estimatorセクションにある、lightgbm_classifierを選択すると、学習の履歴を確認することができますので、さらにAutoTuneタブを選択します。

この情報から、10回試行をし7回目でf1スコアが最も高くなるようなハイパーパラメータを見つけることができたことがわかります。

また、それぞれのハイパーパラメータを探索した範囲ごとのスコアも パラメータ情報 から確認することができます。
VARISTA Blog HyperParameterTuning 014

試行回数と探索範囲を変更

次に、テンプレートの値を変更して再度モデルを作成してみましょう。
今回もテンプレートを複製してから変更します。

以下のように、試行回数と探索範囲を変更してみます。

  • AutoTune rounds: 700
  • num_leaves: 32, 1024
  • n_estimators: 256

VARISTA Blog HyperParameterTuning 015

テンプレート名は、LightGBM Optuna Classifier Rev2などと名前をつけて保存し、このテンプレートを使い、モデルを作成します。

モデルの確認

出来上がったモデルを確認すると、F1スコアが改善されていることが確認できます。
これは、先程の探索範囲では見つけることができなかったより良いパラメータを見つることができたためです。
VARISTA Blog HyperParameterTuning 016

また、最適化の履歴を参照すると、510買い目の試行でスコアが高くなるハイパーパラメータの組み合わせを発見したことを確認することができます。
VARISTA Blog HyperParameterTuning 022

モデル比較

ここまで作成した複数モデルを比較してみたいと思います。

作成したモデルを選択し、モデル比較 をクリックします。
VARISTA Blog HyperParameterTuning 017

続いて、「グリッド」を選択します。
この表示では、比較対象のモデルの各指標を俯瞰して確認することができます。
VARISTA Blog HyperParameterTuning 018

次に、混同行列を確認するために、Confusion Matrixを選択します。
VARISTA Blog HyperParameterTuning 019

プロットタブを選択すると、それぞれのモデルのPR曲線や、ROC曲線を確認することができます。
VARISTA Blog HyperParameterTuning 020

Speed VS Accuracyタブは、推論速度と精度を比較することができますので、性能よりも速度を優先したい場合、またはその逆を優先したい場合など、ビジネス要件に応じてモデルを選択したい場合に役立ちます。
VARISTA Blog HyperParameterTuning 021

まとめ

VARISTAでOptunaとLightGBMを組み合わせてハイパーパラメータの最適化を行い、モデルを比較する流れをご紹介しました。
通常であれば複数のツールのセットアップや環境のメンテナンスが必要ですが、VARISTAを使うことでこれらの工数を削減することができます。


VARISTAは機械学習モデルの開発、管理をノーコードで効率的に行うことができる新しいプラットフォームです。
データをお持ちでしたらすぐに始められますので、是非ともお試しください。

または

Made with
by VARISTA Team.
© COLLESTA, Inc. 2021. All rights reserved.