はじめに
前回の記事の続編、Azure Databricks で機械学習モデルを構築する例を試していきます。
データの前処理
モデルをトレーニングする前に、欠損値をチェックし、データをトレーニングセットと検証セットに分割します。
欠損値はありません。
ML flow を使う準備
Workspace → ユーザー名 → プルダウンで Createと進み、MLflow Experiment をクリックします。
任意で名前をつけます。
この画面に遷移します。Experiment ID は Notebook の中で使うのでメモしておきます。
mlflow をインストールするために、以下のコマンドを実行します。
ベースラインモデルの構築
出力はバイナリであり、複数の変数間に相互作用がある可能性があるため、このタスクはランダムフォレスト分類器に適しているようです。
次のコードは、scikit-learnを使用して単純な分類子を作成します。
MLflowを使用してモデルの精度を追跡し、後で使用するためにモデルを保存します。
モデルによって出力された、学習された機能の重要性を調べます。
前に示した箱ひげ図に示されているように、品質を予測するにはアルコールと密度の両方が重要です。
ROC曲線下の面積(AUC)をMLflowに記録しました。
右上の「実験」をクリックして、実験実行サイドバーを表示します。
モデルは0.89のAUCを達成しました。
ランダム分類子のAUCは0.5であり、AUC値が高いほど優れています。
MLflowモデルレジストリへのモデルの登録
このモデルをモデルレジストリに登録すると、Databricks内のどこからでも簡単にモデルを参照できます。
次のセクションでは、これをプログラムで行う方法を示しますが、「モデルレジストリにモデルを登録する」 の手順に従って、UIを使用してモデルを登録することもできます。
[モデル]ページにワイン品質のモデルが表示されます。
「モデル」ページを表示するには、左側のサイドバーの「モデル」アイコンをクリックします。
次に、このモデルを本番環境に移行し、モデルレジストリからこのノートブックにロードします。
「モデル」ページに、ステージ「生産」のモデルバージョンが表示されます。
パス「models:/ wine-quality / production」を使用してモデルを参照できるようになりました。
新しいモデルを試す
ランダムフォレストモデルは、ハイパーパラメーター調整なしでもうまく機能しました。
次のコードは、xgboost ライブラリを使用して、より正確なモデルをトレーニングします。
Hyperopt と SparkTrials を使用して、並列ハイパーパラメータースイープを実行し、複数のモデルを並列にトレーニングします。
以前と同様に、コードはMLflowを使用して各パラメーター構成のパフォーマンスを追跡します。
次回は結果を表示していきます。3へ続きます。