Record Evaluation Results for each Model#

一般にモデルの実験(試行錯誤)フェーズでは、答えがわかっているテストデータを用いて精度のと品質の検証を行なっていく。その際、各モデルの精度と品質を記録していくことは重要である。ここで紹介する WF は、作成されたモデルの、テストデータに対する当てはまり具合を記録するものである。

アウトプット#

Record Evaluation Results を実行するたびに、automl_eval_results テーブルに以下のような出力が得られる。テストデータに対する評価指標の値が記録されているので、他のレコードと容易に比較することができる。

column_name

val

session_time

2023-09-07 6:41:37

model_name

gluon_model_182000900

test_table

ml_datasets.telco_churn_test

model

CatBoost_BAG_L1/T0

shared_model

6943ffe0-2dc0-4b6c-972e-d0b44a74d864

score_test

0.8526000606

balanced_accuracy

0.7174016162

f1

0.5922920892

accuracy

0.8097491718

roc_auc

0.8526000606

log_loss

0.4085681124

time

1694068897

Drift の検出と通知#

また、この WF の中で Drift が検出を行うことが可能である。Drift が検出されるとアラートメールをトリガーすることができる。スケジュールされた WF を使用してモデルパフォーマンスを追跡し、モデルパフォーマンスが Drift した場合に警告を出すことができる。

+alert_if_drift_detected:
  # we can refer: score_test, balanced_accuracy, f1, accuracy, roc_auc, log_loss.
  if>: ${td.last_results.roc_auc < ml.drift_metric_threshold}
  _do:
    mail>:
      data: Detect drift in model performance. AUC was ${td.last_results.roc_auc}.
    subject: Drift detected
    to: [me+alerts@example.com]
    bcc: [foo@example.com,bar@example.com]
    # echo>: Detect drift in model performance. auc was ${td.last_results.roc_auc}.
  _else:
    echo>: AUC was ${td.last_results.roc_auc}.

Drift 検出にはいくつかのスキームがある。評価尺度を使用してMLモデル性能の劣化を特定する WF の例となっている。

“Drift” とは、機械学習で使われる用語で、機械学習モデルの性能が時間の経過とともに徐々に悪化したり陳腐化したりすることを表す。Drift には主に “Data Drift” と “Concept Drift” の2種類があるが、どちらも機械学習モデルの性能低下につながる。