通过折叠外预测揭示洞见和克服限制。
理解交叉验证并将其应用于实际日常工作是每个数据科学家必备的技能。虽然交叉验证的主要目的是评估模型性能和微调超参数,但它还提供了其他应该注意的输出。通过获取和组合每个折叠的预测结果,我们可以为整个训练集生成模型预测,通常称为“样本外或折叠外预测”。
重要的是不要忽视这些预测结果,因为它们包含了关于建模方法和数据集本身的宝贵信息。通过彻底探索它们,您可以找到答案,例如为什么模型的工作效果不如预期,如何改进特征工程以及数据中是否存在任何固有限制。
一般的方法很简单:研究模型表现自信但出错的样本。在本文中,我将展示这些预测如何帮助我在三个实际项目中。
发现数据限制
我曾参与一个预测性维护项目,目标是提前预测车辆故障。我尝试了一种方法,训练了一个二元分类器。这是一种相对简单和直接的方法。
在使用时间序列交叉验证进行训练后,我检查了样本外预测结果。具体而言,我重点关注了假阳性和假阴性,即模型难以学习的样本。这些错误的预测结果并不总是由于模型的错误。有可能一些样本彼此之间存在冲突,使模型感到困惑。
我发现了几个被标记为故障的假阴性案例,而模型很少将它们视为故障。这个观察引起了我的好奇心。经过进一步调查,我发现了许多与这些假阴性样本几乎完全相同的准确负样本。
下图1通过数据可视化比较了假阴性和真阴性。我不会详细介绍。思路是在原始数据空间中基于欧几里得距离或马氏距离运行最近邻算法;我发现与这些假阴性样本非常接近的样本都是真阴性。换句话说,这些故障实例周围都有许多良好的实例。
我们现在面临着数据集的典型限制:样本混淆。要么标签是错误的,要么我们需要更多的信息(更多的维度)来区分它们。还有可能第三种方式:将整个空间转移到一个新空间,在这个空间中可以轻松区分混淆的样本。但这对于这里并不起作用。首先,混淆发生在原始输入数据中。这就好像对于一个图像分类数据集,一个图像被标记为狗,而另一个几乎相同的图像被标记为猫。其次,这种思考方式是以模型为中心的,通常会增加模型的复杂性。
在向客户提出这些问题后,他们确认标签是正确的。然而,他们也承认,一些看起来工作正常的车辆可能会在没有任何前兆的情况下突然出现故障,这对于预测来说是非常具有挑战性的。我找到的假阴性样本完美地展示了这些意外故障。
通过对交叉验证的样本外预测进行这种分析,我不仅加深了对问题和数据的理解,还为客户提供了具体的例子,展示了数据集的限制。这对我和客户都是宝贵的洞见。
启发特征工程
在这个项目中,客户希望使用车辆的路面数据对某些事件进行分类,例如车辆自身的变道或前方车辆的加速和变道。数据主要是从不同声纳传感器收集的时间序列数据。一些关键信息是周围对象的相对速度和自身车辆与周围车辆和车道之间的距离(在x和y方向)。还有通过摄像头录制的视频,用于给事件打标签。
在对前方车辆变道事件进行分类时,我遇到了一些有趣的实例,模型将其标记为事件发生,但实际情况与此不符。在数据科学术语中,它们是具有非常高概率预测的假阳性。
为了向客户提供模型预测的可视化表示,我向他们展示了短动画,如图2所示。这个模型在19:59到20:02之间错误地将前车标记为“变道”。
为了解决这个谜团,我观看了与这些实例相关的视频。结果发现那些时刻道路是弯曲的!假设车道是笔直的,那么模型是正确的。模型做出错误预测是因为它从未学习到车道可以弯曲。
数据中没有包含关于周围车辆与车道之间距离的信息。因此,模型被训练使用周围车辆与自身车辆的距离以及自身车辆与车道的距离来确定它们与车道的相对位置。为了解决这些情况,模型必须知道车道的曲率。在与客户交谈后,我在数据集中找到了车道曲率的信息,并基于几何公式构建了明确的特征来测量周围车辆和车道的距离。现在模型的性能得到提升,不会出现这样的错误预测。
修正标签错误
在第三个例子中,我们的目标是预测特定的机器测试结果(通过或失败),可以将其视为二元分类问题。
我开发了一个性能非常高的分类器,这表明数据集应该包含足够的相关信息来预测目标值。为了改进模型并更好地了解数据集,让我们专注于模型在交叉验证中产生错误的样本。这些错误预测是值得探索的宝藏。
图3是一个相对较高的阈值的混淆矩阵。三个假阳性表示模型将它们标记为失败,但实际上它们是正确的。我们可以改进特征工程来修复它们,就像上面的例子一样,或者提出这个问题:如果给定的标签是错误的,而模型实际上是正确的呢?人们会犯错误。就像其他列的值可能是异常值或缺失值一样,目标列本身也可能存在噪声并容易出现不准确。
我无法很容易地通过最近邻方法的证据来证明这三个样本是错误的,因为数据空间是稀疏的。然后我与客户讨论了数据的标注方式。我们一致认为某些确定测试结果的标准存在缺陷,部分样本的标签可能是错误的或未知的。经过清理,这三个样本的标签被纠正,模型的性能得到提升。
我们不能总是将数据质量归咎于问题。但请记住,在数据科学工作中,这两个方面同样重要:提高模型性能和修复数据。不要把所有精力都花在建模上,并假设提供的数据都是没有错误的。相反,注重这两个方面是至关重要的。交叉验证中的样本外预测是发现数据问题的有力工具。
有关更多信息,请访问labelerrors.com,该网站列出了流行基准数据集中的标签错误。
结论
交叉验证在提供得分之外还有多种用途。除了数值评估外,它还提供了从折叠预测中提取有价值洞察的机会。通过仔细研究成功的预测,我们可以更好地了解模型的优势并确定最有影响力的特征。类似地,分析失败的预测可以揭示数据和模型的局限性,启发潜在的改进思路。
希望这个工具能够对提升你的数据科学技能有所帮助。
如果你认为这篇文章值得鼓掌,我会很高兴。如果你愿意,可以多次鼓掌;谢谢!
贾宁
时间序列的数据科学
查看列表6个故事