モデルのテスト

本番環境向けのMachine Learningモデル開発

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

個人 vs 集団の公平性

個人の公平性

類似の個人を同様に扱う。

  • 例: 経験が近い人には同様の求人機会を与える

集団の公平性

異なる集団を等しく扱う。

  • 例: 入学モデルで特定の人種・民族を差別しない
本番環境向けのMachine Learningモデル開発

ホールドアウトテスト

  • ホールドアウトテストは別データで信頼性を検証
  • 学習時同様に、未学習データで性能を評価
  • 過学習・過少学習などを検出

データを使うロボット

本番環境向けのMachine Learningモデル開発

モデルドリフトの検知

コンセプトドリフト

  • 特徴量と目的の関係が変化
    • 例: 感情分析
      • 語の意味が変わる(“sick”=良い など)

予測ドリフト

  • 予測分布が変化
    • 例: 一時的な障害でチャットボットの「障害」意図が増加
    • 問題ではないが、応答が遅くなる可能性
本番環境向けのMachine Learningモデル開発

モデルドリフト検知の例

セットアップ:

# Import necessary libraries and split data
X_train, X_test, y_train, y_test = ...

モデル学習:

# Train a classifier on the training data
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Calculate the accuracy on test data
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

後でドリフトを検証:

X_test_drift = X_test + 1.0  # Simulate data drift
# Calculate the accuracy on drifted data
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Drift detection threshold based on the accuracy
drift_threshold = accuracy * 0.9

# Check for drop in accuracy on the drifted data
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
本番環境向けのMachine Learningモデル開発

複雑なモデルとベースラインのコスト比較

  • 複雑なモデルは高コストで効率に影響
  • レイテンシ: 単一入力から予測までの時間
  • スループット: 単位時間あたりの予測数
  • レイテンシとスループットを測り、適切な複雑さを判断
  • 目標は精度と効率の両立
本番環境向けのMachine Learningモデル開発

実践しましょう!

本番環境向けのMachine Learningモデル開発

Preparing Video For Download...