始める無料で始める

カスタム scikit-learn モデル

この演習では、MLflow の pyfunc フレーバーを使ってカスタムモデルを作成します。insurance_charges データセットでは、学習時の分類のためにラベルを female0male1 に置き換える必要があります。モデルを使用する際は、01 ではなく、female または male の文字列を返す必要があります。

カスタムモデルは LogisticRegression に基づく分類モデルで、CustomPredict というクラスを使います。CustomPredict は、predict メソッドに追加のステップを入れ、モデルが入力を受け取ったときにラベル 01femalemale に戻します。モデルのロギングと読み込みには pyfunc フレーバーを使います。

insurance_charges データセットは前処理され、次のコードでモデルを学習します。

lr_model = LogisticRegression().fit(X_train, y_train)

MLflow モジュールはすでにインポートされています。

この演習はコースの一部です

MLflow 入門

コースを見る

演習の手順

  • MLflow の pyfunc フレーバーを使ってカスタムモデルをログに記録します。
  • pyfuncpython_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")
コードを編集して実行