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種類があるが、どちらも機械学習モデルの性能低下につながる。