测试模型

面向生产环境的机器学习模型开发

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

个体公平 vs 群体公平

个体公平

对相似个体给予相似对待。

  • 例如:对经历相近的人提供相似的就业机会。

群体公平

对不同群体一视同仁。

  • 例如:学校录取模型不应歧视特定种族或族裔群体。
面向生产环境的机器学习模型开发

留出法测试

  • 留出法测试使用独立数据集检验模型可靠性
  • 评估在未见数据上的表现,类似训练时
  • 发现过拟合或欠拟合等问题

机器人使用数据

面向生产环境的机器学习模型开发

检测模型漂移

概念漂移

  • 特征与响应之间关系的变化
    • 例如:情感分析算法
      • 词义会变化(如"sick"可表示"很棒")

预测漂移

  • 模型预测分布的变化
    • 例如:临时故障导致聊天机器人的"outage"意图占比上升
    • 本身未必"出错",但漂移可能使用户响应变慢
面向生产环境的机器学习模型开发

模型漂移示例

设置:

# 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.")
面向生产环境的机器学习模型开发

复杂模型与基线模型的成本

  • 复杂模型成本更高,可能影响效率
  • 延迟:处理单个输入并输出预测所需时间
  • 吞吐量:单位时间内可完成的预测数量
  • 测试延迟与吞吐量,以确定模型所需复杂度
  • 目标:准确性与效率的平衡
面向生产环境的机器学习模型开发

Passons à la pratique !

面向生产环境的机器学习模型开发

Preparing Video For Download...