动机
漂移检测是监视已部署模型运行状况的一个重要方面. 这篇文章有助于总结我在AI Research Labs的实习项目中关于漂移检测的学习和直觉.
这个项目的需要是把 MLOps 管道具有可演示的用例,作为漂移监测的概念验证. 然而,皇冠搏彩网app没有很好的数据可以证明漂移. 该项目的目标是评估公共数据集以演示漂移,并生成用于演示的合成数据集. 本文总结了我在生成合成数据集方面的工作.
目标受众和外卖
这个博客是为每一个愿意以更好的方式理解数据和概念漂移问题的数据科学爱好者准备的. 本博客的唯一先决条件是读者必须对什么是数据和概念漂移有一个基本的了解. 这些术语的快速定义可以是-
数据漂移(也称为特性), 人口, 当训练集和测试集的数据分布发生变化时,就会发生协变量漂移. 这些变化可能是由于现实世界的变化或度量的变化而发生的.
当模型学到的模式不再成立时,概念漂移就会发生. 这是, 自变量和因变量之间的关系本身发生了变化. 根据漂移的持续时间和时间可进一步分类为非渐进式, 突然的或反复的.
通过对真实世界数据集的一些观察,阅读这篇博客将使你更好地理解与漂移相关的概念. 您将了解如何检测任何数据集是否面临数据和概念漂移的问题. 如果是, 那么这些漂移的后果是什么呢, 以及它们在不同情况下如何影响皇冠搏彩网app的整体模型.
数据集
在开始创建模型并显示漂移及其对模型的影响之前, 我不得不选择一些最适合这个目的的数据集. 在浏览了27个不同的数据集之后, 我最终选择了两个真实世界的数据集——澳大利亚电力市场数据集和分析 Vidhya贷款预测数据集. 我的主要工作是贷款预测数据集, 但在开始之前,我将从澳大利亚电力模式开始.
澳大利亚电力市场模式
我用这个模型来展示概念漂移. 该模型使用了澳大利亚新南威尔士州电力市场收集的数据, 哪里的电价不是固定的,而是受市场供求关系的影响. 该模型的预测目标是价格是上涨还是下跌. 数据集的每个示例都指30分钟的时间段,因此每天有48个实例. 下面是数据集-的一些重要属性
表1:新南威尔士州电力市场数据集 Details
预测目标 | 价格有涨有跌 |
时间戳 | 日期为1996年5月7日至1998年12月5日. 这里在0之间归一化 & 1 |
分类特征 | 1 - {" day "} |
数值特征 | 7 - {" date ", " period ", " nswprice ", " nswdem和 ", " vicprice ", " vicdem和 ", " transfer "} |
目标列 | 分类(0/1) |
总大小 | 45000 |
精度 | 85% |
您可以找到数据集和每个数据集的详细信息 功能.
现在,是时候展示概念漂移了. 自, 没有一个具体的点过后,皇冠搏彩网app可以说这种趋势已经开始了, 我将电力需求对季节和节日的依赖作为分割的基础.
我用这个数据集创建了两个模型. 我在1996年的冬天训练了第一个模型,并在1997年的冬天进行了测试. 而我在1996年和1997年的冬天训练第二个模型在1997年的夏天进行测试. 自, 日期列在0到1之间规范化, 我使用了一些基本的数学方法来找到分割数据集的准确行号. 最后,我在一个开源库的帮助下生成了一个分类性能报告 显然.ai,以比较这两种模型的性能.


*为了保持本博客的简洁-皇冠搏彩网app将模型精度视为模型性能的唯一衡量标准.
皇冠搏彩网app可以清楚地看到,模型性能的差异超过11%. 这表明季节性因素对模型产生了影响,模型面临着重复概念漂移的问题.
您可以从末尾提供的GitHub链接中找到完整的代码和报告文件.
贷款预测模型
这是我花了大部分时间研究的模型,并带来了一些有趣的观察结果. 我用这个数据集创建了一个随机森林模型, 根据申请表中提供的详细信息,预测客户的贷款请求是被拒绝还是接受. 您可以在下面看到数据集的几个基本属性
表2:贷款预测数据集详细信息
预测目标 | 批准和. 拒绝贷款. |
分类特征 | #8 -{“性别”, “结婚”, “家属”, “教育”, “Self_Employed”, “Property_Area”, “Credit_History”, “Loan_Amount_Term”} |
数值特征 | #3 - {" ApplicantIncome ", " CoapplicantIncome ", " LoanAmount "} |
目标列 | 分类(0/1) |
培训/测试尺寸 | 614/367 |
精度 | 在80%左右 |
您可以找到数据集和每个特征的进一步详细信息 在这里.
数据漂移
我从数据漂移开始. 为了在模型中创建数据漂移,我将训练数据分成两个不相等的部分. 我保持了第一部分的原样, 对于第二部分, 我改变了三个特征的分布——“申请人收入”,”“CoapplicantIncome,和“LoanAmount”.“为了改变分配, 我创建了一个新的数据集作为第二部分的副本,并在其中进行了这些更改
- 第二部分的每一行:
- 申请人收入在(-60,-20)之间随机改变百分比
- 在(-60,-20)之间随机改变共申请人收入百分比
- 在(30,70)之间随机更改LoanAmount的百分比
确认以下更改在数据集中引入了数据漂移, 我生成了一个数据漂移报告, 再次通过显然. 明显用于检测数据漂移的统计检验是- Kolmogorov-Smirnov测试 对于数值特征和 卡方测试 对于分类特征,每个特征具有95%的置信水平.


接下来,我检查了模型预测是如何受到数据漂移的影响的. 为此,我通过明显地生成了一个分类性能报告.ai. 该报告通过不同的指标比较了模型在原始测试数据集和数据漂移引起的数据集上的性能, 混淆矩阵, 等.


但结果令人震惊,不是吗? 报告显示,该模型的性能几乎没有恶化. 这么小的变化背后的原因是什么? 这是否意味着皇冠搏彩网app可以概括出数据漂移不会影响任何模型的模型性能?
经过两个多小时的头脑风暴和尝试不同范围的随机百分比变化, 我意识到,超过50%的模型预测权重实际上取决于一个单一的特征,即“Credit_History”.于是, 更改这三个特征不会对预测造成任何重大变化,因为它们只占总权重的20%左右.
新模型中的数据漂移
为了检查数据漂移是否会降低模型性能,我对模型做了一些修改. 与之前一样,“Credit_History”功能主导了该模型. 我用相同的数据集创建了一个新模型,不包括“Credit_History”特征.这将上述三个特征的总权重从20%提高到60%. 下一个, 我对这个新模型重复了同样的步骤——在这三个特性上做了类似的改变, 生成数据漂移报告和分类性能报告. 结果是——


在这里,您可以看到,这一次模型性能从73%显著降低到66%,即.e.,约7%. 实际上,根据每次运行分配的随机值,它从2-11%减少. 这就是为什么在这个博客中,我采用了报告,它显示了大约平均的结果.
这都是关于我为数据漂移部分创建的合成数据集. 除了这些, 我甚至在模型中创建了一个函数,用于检测新传入数据中的任何数据漂移. 这部分只是展示我的额外作品,与目前正在进行的故事没有关系, 所以如果你对此不感兴趣,你可以直接跳到概念漂移部分.
检测新数据上的数据漂移:
输入:带有特征值的JSON文件
处理:JSON文件→Python字典→Python DataFrame(直到固定批量大小的输入)→一些特征工程→使用开源库生成数值数据(KS-Algorithm)和分类数据(Chi-Squared Algorithm)的漂移的单独报告 alibi-detect
输出:漂移检测报告
*您可以在本文最后共享的Jupyter Notebook中找到运行该函数所需的完整代码和所有相关文件.
概念漂移
现在,是时候进行概念漂移了. 在皇冠搏彩网app的模型中创建概念漂移, 我使用了测试数据并更改了一些特性的值,其余的保持不变. 因为皇冠搏彩网app不知道这个新数据集的真实值, 我通过一些预定义的阈值为每行分配了真值. 以下是我所做的改变,以及做出这些改变背后的直觉.
〇功能变化
- 将“ApplicantIncome”和“CoapplicantIncome”随机调整为-20到10之间的百分比.
- 增加“LoanAmount”在20到50之间的随机百分比.
- 对于(Credit_History=1)的行,为Credit_History分配随机数0或1 & LoanAmount_Change > 25 & (ApplicantIncome_Change or CoapplicantIncome_Change) < 0).
这些变化背后的直觉是-
- 这些更改是在考虑到covid时间的情况下进行的.
- 许多人失业或减薪.
- 对许多人来说,意外的巨额医疗费用.
- 通货膨胀率上升.
- 业务的损失.
- 综合这些影响,收入和贷款金额发生了变化.
- 该模型对收入和贷款额的变化反应不大,因为超过50%的产出预测依赖于Credit_History.
- 对于少数收入减少,贷款要求增加的人来说, 他们可能无法按时偿还过去的贷款, 因此,他们的信用记录可能会受到影响.
- 考虑到以上几点,对Credit_History进行更改.
如前所述, 为新数据集提供基础真值, 我用一些逻辑创建了一个带有预定义阈值条件的函数.


最后, 在做了所有这些事情之后, 我生成了一个Classification Performance报告来比较模型在原始数据集和这个新的合成数据集上的性能.


皇冠搏彩网app可以看到,模型的性能从80%急剧下降到67.6%, 这表明模型肯定无法在这个突然的概念漂移引起的新数据集上执行相同的操作.
在真实场景中会发生什么
皇冠搏彩网app可以从这些观察中得出的总体情况是,在新冠疫情期间, 由于几个因素, 在三个模型特征中存在数据漂移. 但是这个模型能够吸收这些变化,并且仍然能够表现得很好. 随着时间的推移, 由于收入的减少和开支的增加, 这种数据漂移慢慢导致了概念漂移, 因此,模型开始努力以同样的方式进行预测.
总结与结语
这篇博客有助于深入了解如何检测数据和概念漂移,以及这些漂移在不同情况下如何影响模型. 首先,皇冠搏彩网app看到了我是如何使用电力需求对季节的依赖性作为描述反复出现的概念漂移的基础. 接下来,皇冠搏彩网app在贷款预测模型中看到三个不同的实例. 第一个, t在这里 was data drift but no drop in accuracy; second, t在这里 was data drift with a decline in accuracy; 和 third, 当概念漂移导致准确率显著下降,需要模型再训练时.
在经历了所有这些观察之后,皇冠搏彩网app可以说,数据漂移是否会导致模型精度下降并不是确定的. 首先应该看到每个特征对于模型预测有多重要. 如果在相对不太重要的特性中存在数据漂移, 在短期内,它可能不会显著影响模型的性能. 但也有可能随着时间的推移,这些变化开始影响其他功能,从而影响整个模型. 这肯定会显著影响模型的性能.
在持续, 皇冠搏彩网app正在帮助皇冠搏彩网app的客户建立负责任的人工智能系统,专注于透明度和可重复性. 这些MLOps管道可以为皇冠搏彩网app的客户了解机器学习模型的生产性能 卫生保健 和 银行 & 金融 行业. 了解更多关于持续的的信息 人工智能 & 机器学习 产品,请与皇冠搏彩网app联系: airesearch@piano-lyon.com.
您可以在Jupyter Notebook或Python中看到完整的代码 在这里.