数据漂移

端到端机器学习

Joshua Stapleton

Machine Learning Engineer

为何需要检测数据漂移

一张图表,展示不同年龄段心脏病分布随时间的变化——如今心脏病更少见,且发生在更高年龄

端到端机器学习

Kolmogorov–Smirnov 检验

  • 常用于检测数据漂移
  • 比较数据集样本差异以判断分布相似性

两张图,展示初始训练数据集与发生数据漂移后的新推理数据集的分布差异

端到端机器学习

使用 ks_2samp() 函数

  • ks_2samp() 返回两个值:检验统计量、p 值。
  • 用 p 值来接受/拒绝分布相似性的原假设。
from scipy.stats import ks_2samp
# load the 1D data distribution samples for comparison
sample_1, sample_2 = training_dataset_sample, current_inference_sample
# perform the KS-test - ensure input samples are numpy arrays
test_statistic, p_value = ks_2samp(sample_1, sample_2)
if p_value < 0.05:
    print("Reject null hypothesis - data drift might be occuring")
else:
    print("Samples are likely to be from the same dataset")
端到端机器学习

纠正数据漂移

根据新数据更新模型

  • 重训练模型
  • 重新调整/更新模型参数

新/推理数据不足?

  • 用混合数据集重训练
  • 增加新数据量

一个流程图,展示对出现数据漂移的模型进行重训练并重新部署的过程

一个示意图,展示随时间获取新数据后,定期用更多新数据重训练模型

端到端机器学习

检测与纠正数据漂移的更多资源

端到端机器学习

Let's practice!

端到端机器学习

Preparing Video For Download...