カスタム scikit-learn モデル
この演習では、MLflow の pyfunc フレーバーを使ってカスタムモデルを作成します。insurance_charges データセットでは、学習時の分類のためにラベルを female は 0、male は 1 に置き換える必要があります。モデルを使用する際は、0 や 1 ではなく、female または male の文字列を返す必要があります。
カスタムモデルは LogisticRegression に基づく分類モデルで、CustomPredict というクラスを使います。CustomPredict は、predict メソッドに追加のステップを入れ、モデルが入力を受け取ったときにラベル 0 と 1 を female と male に戻します。モデルのロギングと読み込みには pyfunc フレーバーを使います。
insurance_charges データセットは前処理され、次のコードでモデルを学習します。
lr_model = LogisticRegression().fit(X_train, y_train)
MLflow モジュールはすでにインポートされています。
この演習はコースの一部です
MLflow 入門
演習の手順
- MLflow の
pyfuncフレーバーを使ってカスタムモデルをログに記録します。 pyfuncのpython_model引数に、カスタムクラスCustomPredict()を設定します。pyfuncを使ってカスタムモデルを読み込みます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Log the pyfunc model
____.____.____(
artifact_path="lr_pyfunc",
# Set model to use CustomPredict Class
python_model=____,
artifacts={"lr_model": "lr_model"}
)
run = mlflow.last_active_run()
run_id = run.info.run_id
# Load the model in python_function format
loaded_model = ____.____.____(f"runs:/{run_id}/lr_pyfunc")