Databricks でワインの品質を予測するモデルを構築 2

はじめに

前回の記事の続編、Azure Databricks で機械学習モデルを構築する例を試していきます。

データの前処理

モデルをトレーニングする前に、欠損値をチェックし、データをトレーニングセットと検証セットに分割します。

2020-09-01_16h59_32.png

欠損値はありません。

ML flow を使う準備

Workspace → ユーザー名 → プルダウンで Createと進み、MLflow Experiment をクリックします。
image.png
任意で名前をつけます。
image.png
この画面に遷移します。Experiment ID は Notebook の中で使うのでメモしておきます。
image.png

mlflow をインストールするために、以下のコマンドを実行します。

ベースラインモデルの構築

出力はバイナリであり、複数の変数間に相互作用がある可能性があるため、このタスクはランダムフォレスト分類器に適しているようです。

次のコードは、scikit-learnを使用して単純な分類子を作成します。
MLflowを使用してモデルの精度を追跡し、後で使用するためにモデルを保存します。

モデルによって出力された、学習された機能の重要性を調べます。

image.png

前に示した箱ひげ図に示されているように、品質を予測するにはアルコールと密度の両方が重要です。

ROC曲線下の面積(AUC)をMLflowに記録しました。
右上の「実験」をクリックして、実験実行サイドバーを表示します。

モデルは0.89のAUCを達成しました。

ランダム分類子のAUCは0.5であり、AUC値が高いほど優れています。

MLflowモデルレジストリへのモデルの登録

このモデルをモデルレジストリに登録すると、Databricks内のどこからでも簡単にモデルを参照できます。

次のセクションでは、これをプログラムで行う方法を示しますが、「モデルレジストリにモデルを登録する」 の手順に従って、UIを使用してモデルを登録することもできます。

[モデル]ページにワイン品質のモデルが表示されます。
「モデル」ページを表示するには、左側のサイドバーの「モデル」アイコンをクリックします。

次に、このモデルを本番環境に移行し、モデルレジストリからこのノートブックにロードします。

「モデル」ページに、ステージ「生産」のモデルバージョンが表示されます。

パス「models:/ wine-quality / production」を使用してモデルを参照できるようになりました。

新しいモデルを試す

ランダムフォレストモデルは、ハイパーパラメーター調整なしでもうまく機能しました。

次のコードは、xgboost ライブラリを使用して、より正確なモデルをトレーニングします。
Hyperopt と SparkTrials を使用して、並列ハイパーパラメータースイープを実行し、複数のモデルを並列にトレーニングします。
以前と同様に、コードはMLflowを使用して各パラメーター構成のパフォーマンスを追跡します。

次回は結果を表示していきます。3へ続きます。

公式リンク

Databricks