引言
模型监控指标梳理
1.数据监控方法(主要是表格数据):
- 1.数据质量监控指标:{空值,None 值, 缺失值(NaN)},重复值,唯一值,异常值(离群点)。
- a.数据的统计指标:极值,均值,中位数,众数,方差,标准差等。
- 2.数据格式监控指标:字符串不匹配,字符串长度超过范围,混合类型,特殊值(如颜文字)。
- 3.漂移监控指标:
-a.标签(目标)漂移:训练数据标签和测试数据标签的标签分布发生变化(通俗讲就是训练数据标签和实际数据标签不一致)。
- b.预测漂移:通俗讲就是模型随着时间和环境变化导致预测结果发生的变化。
- c.数据漂移:训练数据与测试数据的特征分布发生变化(通俗讲就是训练数据和实际数据存在差异)。
- 4.其他监控指标:特征相关性检测(训练特征之间,训练特征与目标特征之间)。
- 5.CV 图像数据监控指标:图像亮度(均值,标准差), 色调(均值,标准差),饱和度(均值,标准差),高度宽度(均值,标准差)等
- 6.NLP 文本数据监控指标:字符串长度,字数,字符数等
1.1.漂移检测方法:
- 1.Hellinger 距离:衡量两个概率分布之间相似性的度量方法(对称)。
- a.适用场景:常用于比较连续或离散特征的概率分布相似性。它对于分布形状和尾部的差异比较敏感,因此适用于对分布的整体差异性进行度量。Hellinger距离在统计分析、机器学习和数据挖掘等领域中被广泛应用,例如领域适应、聚类分析和异常检测等。
- 2.Kullback-Leibler(KL)散度:衡量两个概率分布之间的差异程度,是使用一个概率分布来表示真是分布时候的信息损失。
- a.KL散度常用于衡量两个概率分布之间的差异和信息增益(非对称)。它对于非零概率区域的差异比较敏感,可以用于比较连续或离散特征的分布差异。
- 3.Jensen-Shannon(JS)散度:KL散度的一种对称形式,衡量的是两个概率分布之间的相似度和差异度。(可用于数值特征)
- a.适用场景:常用于比较连续或离散特征的概率分布相似性。它通过计算两个分布分别与它们的均值分布的KL散度的平均值来衡量它们之间的差异。Jensen-Shannon散度在文本分类、聚类分析和信息检索等领域中被广泛使用,尤其在需要衡量多个分布之间的相似性时较为常见。
- 4.Kolmogorov-Smirnov(KS)统计量:用于比较两个样本或者样本分布与理论分布之间差异的统计量,基于累计分布函数的差异来衡量两个分布之间的最大绝对差异。
- a.适用场景:适用于连续或者离散数据,可以用来判断两个样本是否来自同一分布或者样本分布与理论分布是否拟合良好。
- b.Evidently推荐:对于数据量<= 1000,数值特征(n_unique > 5)的情况使用双样本 KS 检验;
- c.如果数值特征(n_unique <= 5)的分类特征或者数值特征使用卡方检验
- d.对于二分类特征:基于 Z-score 对独立样本进行比例差异测试
- e.注:置信度使用默认的 95%
- 5.Wasserstein 度量(EMD):通过计算将一个分布转换成另一个分布所需要的最小运输成本,来衡量两个概率分布之间的差异。
- a.适用场景:对于连续分布和离散分布都适用,并且可以处理具有不同形状的分布。它在图像处理、生成模型和优化问题中具有广泛的应用。
- b.Evidently推荐:对于数据量超过 1000 ,数值特征(n_unique > 5)使用 Wasserstein 距离;
- c.n_unique < = 5 的分类或者数值特征,使用 JS(Jensen-Shannon) 距离
- 6.Cramer‘s V 统计量:用于衡量两个分类变量之间相关性的指标。它基于卡方统计量的结果,用于度量两个分类变量之间的关联程度。
- a.适用场景:常用于分析交叉表格或者列连表格中的分类变量之间的关系
- 7.群体稳定指数(PSI):衡量变量两个时间点或者两个样本集数据分布稳定性的指标,帮助我们识别数据分布的变化程度,从而确定模型的稳定性和可靠性。
- a.用于监测离散或者分类分布,常用于检测模型在时间或者群体变化的稳定性,尤其是风险评估模型,信用评分模型,营销模型等场景(连续数据可以处理成离散数据再使用)。
- 8.训练域分类器:迁移学习的一种算法模型,主要目标是识别在训练和测试过程中数据分布发生变化的情况(域漂移)。
- a.可以用于离散和连续数据。
- 9.检测漂移辅助方法:设定检查周期和基线(分布),校准阈值
- 1.可以使用历史数据作为基线,选择足够长的历史数据作为参考计算关键统计指标作为标准检测差异
- 2.挑选一部分合规数据作为基线来检测差异
- 3.也可以将阈值设定为基线,比如设定某一假设检验的默认阈值来决定是否拒绝原假设
1.2.特征相关性检测方法:
- 1.数值-数值特征相关性检测:皮尔逊相关系数;斯皮尔曼系数;
- 2.数值-类别特征相关性检测:方差分析;点双列关联(Point-Biserial Correlation);方差比(Coefficient of Variation);
- 3.类别-类别特征相关性检验:卡方检验; 点互信息(PMI); 熵相关性;Cramer‘s V 统计量
- 4.训练特征与目标特征:
- a.PPS(predictive power score): 表示一个特征单独预测目标特征的能力。
- b.注1:对于索引和日期 PPS 应该接近于0,否则说明其对目标有一定的预测作用; PPS 很高的特征需要考虑是否存在数据泄露问题
- c.注2:PPS计算可以调用 ppscore 的Python包来使用该函数。
2.模型性能监控方法:
- 1.二分类模型评价指标:
- a.混淆矩阵(多分类也可以生成混淆矩阵),这是以下多个指标的基础
- b.准确率(A = 正确分类样本 / 样本总数); 召回率(R = TP / (TP + FN));精确率(P = TP / (TP + FP))); F1 得分(2PR / (P + R))
- c.ROC 曲线:使用FPR 为横坐标(FPR = FP / (FP + TN)),TPR 为纵坐标(TPR = TP / (TP + FN)),画出来的曲线为 ROC 曲线
- d.AUC 的值就是曲线与横轴的之间的面积
- e.PR 曲线:以精确率 P 为纵坐标,召回率 R 为横坐标画图得到 PR 曲线。
- f.Logloss:对数损失(交叉熵损失),一种损失函数,衡量模型预测概率与真实标签之间的差异。
- a.混淆矩阵(多分类也可以生成混淆矩阵),这是以下多个指标的基础
- 2.多分类模型评价指标:
- a.准确率、召回率(每类)、精确率(每类),F1得分等 (和二分类类似的指标)。
- 3.回归模型评价指标(多元回归模型评价指标类似):
- a.均方误差 (MSE):预测值与真实值之间的差值平方的均值。
- b.均方根误差 (RMSE): MSE 的开平方,主要作用是对误差较大的样本有更大的惩罚力度。
- c.平均绝对误差 (MAE):预测值与真实值之间差值的绝对值的平均值,衡量模型预测结果的平均偏差程度。
- d.MAPE(平均绝对百分比误差):衡量的是模型对不同尺度数据的相对误差大小
- e.相关系数 r:衡量的是自变量与因变量之间的线性相关程度。
- f.R2(决定系数): 衡量模型与观测数据的拟合程度。
- 4.排序模型评价指标:
- a.AUC:此处的 AUC 衡量的是不同阈值下,将正样本排到负样本之前的能力。
- b.平均精度@K、平均召回@K:此处的@ K 表示的是排序列表中前 K 个结果的平均精度或者召回率
- c.平均倒数排名 (MRR):给定的排名列表中,首次出现正确结果的平均倒数排名
- d.归一化折扣累计增益(NDCG):可以视为对排序结果按照一定规则的打分。
- 5.其他模型:略
3.模型可解释性:
- 1.基于特征重要性:
- a.基于决策树模型的特征重要性:如 GINI 重要性,平均准则重要性,信息增益指标。
- b.基于模型的特征重要性:如特征的系数大小或者说特征在模型中的权重来衡量特征重要性。
- c.基于稳定性的特征重要性:通过随机扰动或排列来衡量特征对模型预测结果的影响,常见指标如特征排列重要性和稳定性选择。
- 2.局部解释性:
- a.特征重要性(同 1)。
- b.局部可解释方法:LIME(local interpretable model-agnostic explanations) 和 SHAP(shapley additive explanations)。
- 3.全局解释性:特征重要性;SHAP 值;
- 4.规则提取:
- a.支持度:衡量规则在数据集中出现的频率,表示规则中涉及的项集在整个数据集中出现的频率,支持度越高,表示规则在数据集中出现越频繁。
- b.提升度:衡量规则的独立性和关联性,表示规则中涉及的结论项集出现的相对频率。
- c.置信度和置信区间:置信度是衡量关联规则的准确性,置信区间用于评估置信度的统计显著性。
- 5.可视化:比如通过图标,热力图,决策路径等方式讲模型预测过程可视化。
模型监控框架调研结果梳理
框架支持功能 | Whylabs | Deepchecks | Evidently AI |
---|---|---|---|
是否需要上传原始数据到平台 | 是 | 是 | 否 |
数据质量检测内容 | 一般 | 较多 | 一般 |
模型性能检测内容 | 一般 | 较少 | 较多 |
是否支持自定义组合监控内容 | 是 | 是 是 | |
是否支持自定义监控指标 | 是 | 是 是 | |
目前支持的模型种类 | 分类模型(二分类和多分类);回归模型;排序模型,LLM 模型,NLP 模型,CV 模型,嵌入模型 | 分类模型(二分类和多分类);回归模型 | 分类模型(二分类和多分类),回归模型, |
是否包含告警通知 | 是 | 是 | 否 |
可扩展性 | 强 | 强 | 强 |
是否支持角色权限控制 | 是 | 否 | 否 |
是否支持模型可解释 | 是 | 否 | 否 |
是否支持部分数据(特征)监控 | 是 | 是 | 是 |
监控是否考虑时间因素(时序数据) | 是 | 否 | 是 |
可视化丰富度 | 强(复杂) | 一般 | 强(简洁) |
-
1.框架读取数据(信息)实现可视化监控的方式:
- 1.Whylabs:使用框架自带的开源包提取数据信息,并传入框架可视化平台(不直接使用原始信息)。
- 2.Evidently:将原始信息整理成 Pandas 的 DataFrame 格式(仅支持该格式),调用框架开源包生成可视化报告(输出结果为:json,html,Python 字典,Evidently"快照")。
- 3.Deepchecks:使用 Pandas 提取数据信息,将数据信息和原始数据传入框架可视化平台(需直接使用原始信息,也可以返回 json,html 结果)。
-
2.框架包含的告警方式:
- 1.集成团队协作平台Slack,故障响应平台PageDuty,设置通知电子邮件,自定义 webhook 等方式进行告警。
-
3.框架包含的可扩展性:
- 1.数据层面:集成 Spark,Ray,Kafka 等
- 2.模型框架层面:scikit-learn, tensor flow,pytorch 等框架
- 3.模型生命周期工具:MLflow,Airflow,Flyte 等
- 4.通知告警层面:Slack, PagerDuty,ServiceNow 等
补 1:Evidently 框架中检测方法适用场景梳理(表格数据)
漂移检测方法 | 适用场景 | 默认阈值 |
---|---|---|
Kolmogorov–Smirnov (KS) 检验 | 仅适用表格数值数据(数据量<= 1000) | 0.05 |
卡方检验 | 仅适用表格分类数据(如果数据量<= 1000,标签需要> 2) | 0.05 |
Z 检验 | 仅适用表格分类数据(数据量<= 1000,二进制数据) | 0.05 |
Wasserstein距离 (标准化) | 仅适用表格数值数据(数据量 > 1000) | 0.1 |
Kullback-Leibler(KL 散度) | 适用于表格分类和数值数据 | 0.1 |
Population Stability Index (PSI) | 适用于表格分类和数值数据 | 0.1 |
Jensen-Shannon距离 | 适用于表格分类和数值数据(数据量 > 1000,分类数据的默认方法) | 0.1 |
Anderson-Darling 检验 | 仅适用表格数值数据 | 0.05 |
Fisher's Exact 检验 | 仅适用表格分类数据 | 0.05 |
Cramer-Von-Mises 检验 | 仅适用表格数值数据 | 0.05 |
G 检验 | 仅适用表格分类数据 | 0.05 |
Hellinger 距离 (标准化) | 适用于表格分类和数值数据 | 0.1 |
Mann-Whitney U-rank检验 | 仅适用表格数值数据 | 0.05 |
Energy距离 | 仅适用表格数值数据 | 0.1 |
Epps-Singleton检验 | 仅适用表格数值数据 | 0.05 |
T检验 | 仅适用表格数值数据 | 0.05 |
Emperical-MMD | 仅适用表格数值数据 | 0.05 |
Total-Variation 距离 | 仅适用表格分类数据 | 0.05 |