1
3

More than 3 years have passed since last update.

【Optuna】ノーコードツールでハイパーパラメータ最適化からのPythonで利用【LightGBM】

Last updated at Posted at 2021-03-16

VARISTA

VARISTAとはノーコードで機械学習のモデリングおよび実験管理、デプロイまでサポートしているクラウド型機械学習プラットフォームSaaSです。

作業の流れ

  1. 最終的に学習させるデータを用意
  2. VARISTAにデータアップロード
  3. 学習テンプレート作成
  4. 学習開始
  5. AutoTune(パラメータ最適化)結果を確認
  6. Pythonで最適化されたパラメータを利用

データ

今回はタイタニックでやってみます。

VARISTAの準備

サインアップ(無料プラン有り)してワークスペース、プロジェクトを1つ作成しておきます。

データアップロード

早速プロジェクトにデータをアップロードしていきます。
「サイドバー› データ› データを追加」
スクリーンショット 2021-03-16 8.57.39.png

スクリーンショット 2021-03-16 8.57.51.png

スクリーンショット 2021-03-16 8.58.38.png
解析完了後、データを開いて、Survivedを目的変数に設定します。

学習テンプレート作成

あらかじめいくつか学習テンプレートが用意されていますが、今回はVARISTAのAutoTune機能を利用するので
新たに学習テンプレートを作成します。

「サイドバー› モデリング› 上部タブ› テンプレート› 新規作成」
スクリーンショット 2021-03-16 8.59.05.png

スクリーンショット 2021-03-16 8.59.56.png
「基本設定」は今回タイタニックなのでObjectiveを「Classification」に設定
あとはデフォルト
スクリーンショット 2021-03-16 9.00.03.png
今回は学習タイプは「Single」で試します。複数のアルゴリズムのパラメータを同時に探索したい場合などは「Auto Selection」にするといいかもしれません。
スクリーンショット 2021-03-16 9.00.44.png

「アルゴリズム」を「LightGBM Classifier」に設定(他のアルゴリズムでやる人はここで選択)
さらに「AutoTune」の項目を「TPE Optimization with optuna」に設定することでoptunaをノンコードで利用することができます。
カンマ区切りでデータの探索範囲を設定しましょう。
スクリーンショット 2021-03-16 9.01.13.png
以下公式ドキュメント👇

スクリーンショット 2021-03-16 9.01.37.png
テンプレートを保存して完了!

学習

「サイドバー› モデリング› 新規モデル」からモデルを学習させましょう。
スクリーンショット 2021-03-16 9.02.03.png
スクリーンショット 2021-03-16 9.02.19.png

データとテンプレートを選択し、作成!
学習が始まります。

結果確認

今回は87秒で学習が完了しました。
このようにトレーニングの結果が確認できます。
スクリーンショット 2021-03-16 9.24.23.png

早速パラメータ調整の結果をみてみましょう
「上部タブ› アルゴリズム› Selected Estimator› AutoTune」から確認できます。
スクリーンショット 2021-03-16 9.25.52.png
このように設定した評価指標(f1 score)をもとにチューニングされてるのがわかります。
スクリーンショット 2021-03-16 9.27.58.png
パラメータの設定値とスコアの関係を可視化してくれる機能もあります。

チューニングされたパラメータを利用

「上部タブ› アルゴリズム› Selected Estimator› Parameters」から最終的に利用されたパラメータを取得できます。
スクリーンショット 2021-03-16 9.29.06.png
こちらをコピーすることでそのままコードで利用することが可能です。
以下のように利用してみました。

from lightgbm import LGBMClassifier

#~~~~~ 省略 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

params = {
    'colsample_bytree': 0.9703433354519538,
    'reg_lambda': 0.9949322422230866,
    'max_depth': 9,
    'min_child_samples': 26,
    'num_leaves': 185,
    'reg_alpha': 2.0268086933514935,
    'subsample': 0.9657031906272966,
    'subsample_freq': 1,
    'learning_rate': 0.24476370705062717
}
clf = LGBMClassifier(**params)
clf.fit(X, y)

まとめ

パラメータ探索のコードをただ実装するとなっても、そこまで大変な作業ではないかもしれませんが
複数の探索手法、複数のアルゴリズムなどそれぞれ試すとなったら実装も面倒ですし、結果の管理も余計なコストがかかってしまうことでしょう
そんなときにノンコード、GUIで設定から実験管理まで行えるVARISTAのAutoTune機能が役に立つかもしれません。
普段はPythonで機械学習やっているからGUIツールは関係ない!って思っている方もぜひ一度試してみてはいかがでしょうか?

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3