概要
DatabricksのマネージドMLflowにPyCaretのトラッキングを実施する方法を紹介します。
本手順は、Databricks Runtime Versionを、8.3 ML (includes Apache Spark 3.1.1, Scala 2.12)で実施しております。
Pycaretのドキュメントにて、下記のように実施方法が記載されています。
引用元:MLFlow - PyCaret
また、DatabricksにてPyCaretを利用する場合には、下記の記事で紹介した通り、"setup"の引数に", silent = True, html = False"の追記が必要です。
DatabricksにてPyCaretにおけるsetupの実行が終了しない事象への対応方法 - Qiita
以上の情報を組み合わせた手順を紹介します。
利用手順
1. MLflow Experimentを作成
2. 作成した"MLflow Experiment"のパスをコピー
3. PyCaretのインストール
%pip install pycaret
4. Optunaのインストール
%pip install optuna
5. "experiment_name"に2の手順で取得した値を追記したコードを、PyCaretのsetupを実行
# loading dataset
from pycaret.datasets import get_data
data = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data,
target = 'Class variable',
log_experiment = True,
experiment_name = '/qiita/pycaret_databricks/mlexp_pycaret',
# Databricksで実行する際に必要となる引数
silent = True,
html = False,
# MLFlowへのログする情報の追加
# 詳細は下記記事参照
# https://pycaret.org/mlflow/
log_plots = True,
log_profile = True,
log_data = True
)
6. MLflow Experimentにて、RUNが記録されていることを確認
7. モデルを作成するコードを実行
# train individual model
dt = create_model('dt')
8. MLflow Experimentにて、RUNが記録されていることを確認
9. ハイパーパラメータチューニングのコードを実行
# tune hyperparameters of model
tuned_dt = tune_model(dt, search_library = 'optuna')