机器学习模型训练数据分布变化检测系统
核心监控指标
- 特征分布KL散度:计算新数据与历史数据的KL散度,阈值设为0.1
- 特征均值偏移率:相对变化超过5%触发告警
- 数据分布KS检验:p值小于0.05时触发异常
实现方案
import numpy as np
from scipy import stats
def detect_data_drift(X_train, X_new):
drift_scores = []
for i in range(X_train.shape[1]):
# KL散度检测
kl_div = np.sum(X_new[:, i] * np.log(X_new[:, i] / X_train[:, i])))
# KS检验
ks_stat, ks_pvalue = stats.ks_2samp(X_train[:, i], X_new[:, i])
drift_scores.append({
'kl_div': kl_div,
'ks_stat': ks_stat,
'ks_pvalue': ks_pvalue
})
return drift_scores
告警配置
- 阈值设置:KL散度>0.1,KS检验p值<0.05
- 告警级别:中等风险,需人工确认数据质量
- 监控周期:每日自动检测,数据变更时实时触发
该系统可有效识别模型输入数据分布变化,确保模型性能稳定。

讨论