模型可靠性

Developing Machine Learning Models for Production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

使 ML 模型與商業影響指標對齊

  • 商業影響指標衡量 ML 對業務的影響
    • 例如:營收、成本節省、顧客滿意度分數(CSAT)
  • 應與模型指標對齊
    • 例如:流失預測器 → 營收
    • 例如:製造維修預測器 → 成本節省
    • 例如:聊天機器人意圖辨識的準確度 → CSAT

graph going up

Developing Machine Learning Models for Production

ML pipeline 的測試流程

  • 單元測試 檢查個別元件
    • 例如:測試 PCA 物件是否回傳預期的特徵數
  • 整合測試 檢視整條 pipeline
    • 例如:測試輸入資料是否正確前處理、模型是否準確預測、輸出是否正確後處理
  • 煙囪測試(Smoke test) 是快速測試,讓你有系統可用的信心
    • 例如:測試模型能否正確分類一小組範例影像
  • 及早且頻繁測試
    • 例如:新資料一到就測試模型
Developing Machine Learning Models for Production

單元測試範例

def test_pipeline():
    # Generate mock data for testing
    X_train = pd.DataFrame({'age': [25, 30, 35, 40], 'income': [50000, 60000, 70000, 80000])
    y_train = pd.Series([0, 0, 1, 1])

    pipeline = Pipeline([('preprocessing', DataPreprocessor()),  # Set up pipeline
                         ('model', LogisticRegression())])
    pipeline.fit(X_train, y_train)  # Fit pipeline on training data

    # Generate mock data for testing
    X_test = pd.DataFrame({'age': [30, 35, 40, 45], 'income': [55000, 65000, 75000, 85000])
    y_test = pd.Series([0, 0, 1, 1])
    y_pred = pipeline.predict(X_test)  
    accuracy = accuracy_score(y_test, y_pred)  # Evaluate pipeline on test data

    assert accuracy > 0.8, "Error: pipeline accuracy is too low."
Developing Machine Learning Models for Production

監控模型陳舊

  • 模型陳舊:模型效能隨時間下降
    • 資料或環境改變所致
  • 持續監控!

confused robot

Developing Machine Learning Models for Production

識別與因應模型陳舊

識別

  • 監控模型效能
  • 監控資料與環境的變化

因應

  • 以新資料重新訓練模型
    • 例如:需將新特徵納入模型
  • 更新資料 pipeline 以因應環境變更
    • 例如:分析平台更動讓你的 pipeline 產生混淆
Developing Machine Learning Models for Production

一起來練習吧!

Developing Machine Learning Models for Production

Preparing Video For Download...