如何确保机器学习不会通过错误的方式来正确分类?

机器算法验证 机器学习 分类 支持向量机 大车
2022-03-23 06:31:04

我在使用 SVM 和 DT 的辐射暴露预测问题上得到了很好的结果,其中最终目标是使用与个人健康相关的数据来预测个人受到的辐射剂量。

总的来说,反馈是积极的,但有一条评论让我很感兴趣:如何确保机器学习不会通过错误的方式来正确分类?你是怎么排除这个的?

我采取了所有必要的预防措施来确保类不平衡、过度拟合等问题不是问题,所以我当然认为这与该领域的基础知识有关,而不是与机器学习方法问题有关。

如何从 ML 的角度开始解决这个问题,我觉得答案基本上可以归结为这样一个事实,即在完成所有可以优化模型性能(正则化、交叉验证等)的必要程序之后,有没有“以错误的方式得出正确的分类”之类的东西吗?

我觉得这实际上是一个需要一个很好的答案的问题,以便与可能不熟悉机器学习的观众进行任何技术交流(或者他们可能仍然想听听我们的想法)。

3个回答

ML 中的一个问题是当它使用我们不希望它使用的预测变量时,例如性别或种族。即使这些没有被输入到模型中,我们可能仍然有与这些因素相关的预测因子,例如与种族相关的邮政编码,或与性别相关的大学。

假设,比如说,性别确实与我们建模的结果相关,那么即使我们不输入性别,而只输入就读的大学,并且一些大学传统上是性别不平衡的,那么我们总体上会得到不同的分类或预测男性多于女性。

可以通过按性别对数据集进行切片并检查结果预测来找出这种特殊情况,同时忽略所有其他信息。

不幸的是,这并不简单,因为模型没有使用性别(我们没有输入)。它使用就读的大学,这反过来又与结果相关。仅在性别等单一维度上对数据集进行切片,而忽略可能的中介或混杂因素(如大学)是否有意义?是 A 大学的学生表现更差,男性主要上 A 大学的问题,还是男性表现更差,他们主要上 A 大学的问题?哪个预测变量代表模型进行预测的“错误”方式?

然后,当然,所有这些都与原始问题是否是训练数据已经表现出偏差结果的问题混为一谈。也许 A 大学的男学生在历史上表现更差,因为总是对 A 大学的学生存在招聘偏见。或者相反,对男性有偏见。对此没有简单的解决方案,因为几乎不可能从任何真正的潜在差异中梳理出训练样本中偏差的“真实”影响。

底线:没有简单的方法可以确定您的模型是通过“正确”的方式(男性确实表现更差)还是通过“错误”的方式(男性主要上大学)得出“正确”的预测(“男性表现更差”) A,大学 A 的学生表现更差)。特别是,您无法以编程方式进行测试。你最好的选择可能是让你的模型接受各种压力测试,并制定一个计划,如果你投入生产并且有人检测到你没有想到的缺陷,该如何应对。

+1:非常深刻的问题!

我会重复我从顾问那里得到的建议,但不一定理解它!这是几年前的事了,所以我可能歪曲了它。

问题在于存在一些明显噪声(负信号功率水平)时的分类。我问:“我应该如何过滤掉噪音?”。他回答说:“你不会。首先,ML 模型会为你做这件事。其次,噪声曲线是模型的宝贵训练数据。”

我对此并不满意,但相信他在他所做的事情上非常有能力。

这就是验证集的目的。将您的数据集分成 3 部分:训练、测试和验证。在最后一个阶段之前,切勿再次触摸您的验证集。使用训练和测试创建模型、训练编码器、进行预处理、创建变量等。然后创建模型并使用训练和测试对其进行调整。

当您满意并拥有您想要的模型时,然后在您的验证集上应用您的编码器和预处理,它作为来自模型的全新和未知数据,与您在真实案例中的类型相同。将您的模型应用于那些全新的数据(您没有将其用作训练模型的参考,就像您对测试所做的那样),以了解您的模型将如何使用新数据实时执行。这可以很容易地向观众展示:让他们给你他们拥有的最新示例,从数据中删除最终答案,并在其上运行你的模型。您将获得有关模型如何处理新数据的精确结果。如果他们仍然有疑问,请要求一个测试阶段,在该阶段您每天实时运行您的算法,暂时不要更换他们当前的系统,

要检查的另一件事是确保您不使用在实际情况下不应该拥有的变量,或者在不知道目标的情况下不应该知道的变量。这是从错误的方式进行良好分类的经典案例。