計算値と推定値の扱い方

Pythonで学ぶ機械学習のモニタリング

Maciej Balawejder

Data Scientist

データをどう分割するか?

画像は3種類のチャンク方法(タイプ、サイズ、個数ベース)を示しています。

Pythonで学ぶ機械学習のモニタリング

異なるチャンクの指定

画像はチャンク期間に渡せる時間ベースのエイリアスを示しています。

# アルゴリズムを初期化
cbpe = nannyml.CBPE(
   problem_type='classification_binary',
   y_pred_proba='predicted_probability',
   y_pred='prediction',
   y_true='employed',
   metrics=['roc_auc'],
   chunk_period='m',
   # chunk_size = 5000, 
   # chunk_number = 10
)
Pythonで学ぶ機械学習のモニタリング

カスタムしきい値の初期化

標準偏差しきい値

  • 下限・上限の標準偏差倍率を手動設定
# 標準偏差しきい値
stdt = StandardDeviationThreshold(
    std_lower_multiplier=3, 
    std_upper_multiplier=3
    )

定数しきい値

  • 下限・上限の値を手動設定
# 定数しきい値
ct = ConstantThreshold(
    lower=0.85, 
    upper=0.95
    )
Pythonで学ぶ機械学習のモニタリング

カスタムしきい値の指定

# しきい値メソッドをインポート(前スライド)
from nannyml.thresholds import ConstantThreshold, StandardDeviationThreshold

# CBPE にしきい値を渡す
estimator = nannyml.CBPE(...
    metrics = ['roc_auc', 'accuracy'],
    thresholds={'roc_auc': ct, 'accuracy' : stdt}
)

画像はROC AUCとaccuracyの推定パフォーマンスのプロット(カスタムしきい値)を示しています。

Pythonで学ぶ機械学習のモニタリング

結果のフィルタリング

  • 期間で絞り込む
    filtered_results = results.filter(period='analysis')
    
  • 指標で絞り込む

    filtered_results = results.filter(metrics=['mae'])
    
  • 両方

    filtered_results = results.filter(period='analysis', metrics=['mae'])
    
Pythonで学ぶ機械学習のモニタリング

結果をDataFrameにエクスポート

# 結果をDataFrame形式でエクスポート
results.filter(period='analysis').to_df()

画像はDataFrame形式の結果を示しています。

Pythonで学ぶ機械学習のモニタリング

練習してみましょう!

Pythonで学ぶ機械学習のモニタリング

Preparing Video For Download...