跳到主要内容 跳到补充内容

无效的插补

太多缺失的值可能会对机器学习模型的质量产生负面影响。插补是填充缺失值(称为空值)的实践。丢失数据的原因可能有很多,例如数据库错误、用户没有填写表单的一部分,或者您开始收集新数据,而数据集中的旧记录没有新的数据点。

了解插补可能对数据产生的影响很重要。脉冲保留了行或列的预测能力,但它也有可能创建以前不存在的模式,或为确实存在的模式添加噪声。这会降低数据的有效性。

您可能需要审查数据收集实践,以确保数据完整,并根据需要实施新流程。以下方法是归零的常见做法。如果要保留空值的表示形式,可以使用诸如“other”或“unknown”之类的值填充空值。

自动预处理过程中的 null 值插补

Qlik AutoML 中,自动数据预处理使用 null 值插补来为训练准备数据集。在自动数据预处理过程中,通过排除缺失值超过 50% 的列并输入缺失值来处理空值。分类功能中的缺失值用值 "other"来插补,数值特性中的缺失值用平均值来插补。

额外的考虑事项适用于自动设计的特性和时间感知培训。

关于预处理的更多信息,请参阅自动数据准备和转换

自动设计特性

通过自动特性设计,AutoML 从现有的父特性中创建新特性。对于自动设计的特性,null 值插补的方法如下:

  • 如果您在训练中已包括自动设计日期特性,则这些特性的 null 值插补过程与数值特性相同。

  • 如果您使用的是父日期特性,则 null 值插补过程与分类特性是一样的。

  • 对于作为自由文本处理的分类特性,null 值插补与分类特性相同。

时间感知训练

如果打开了时间感知训练,则 null 值插补的执行过程如下:

  • 在预处理过程中,训练数据集中所选日期索引为 null 值的任何行都会被删除。这些行未用于训练模型。

  • 对于数值特性,null 值插补是用线性插补执行的。线性插值也用于自动设计日期特性。

  • 对于分类特性,null 值插补过程与不使用时间感知训练时相同。

  • 如果使用没有自动特性设计的日期特性,则 null 值插补过程与分类特性相同。

  • 对于作为自由文本处理的分类特性,null 值插补与分类特性相同。

关于时间感知训练的更多信息,请参阅创建时间感知模型

插补是如何工作的

以下方法是归零的常见做法。

数值

一个良好的默认值是估算平均值。如果缺失的值是正态分布的,这就像在跷跷板的中心增加重量一样,不会影响两边的重量。然而,您应该始终考虑该值试图代表什么。例如,如果您的销售数据中销售价格的某些值为空,那么这是由数据库错误引起的还是买家使用优惠券作为付款?0 或平均值外其他值是否更有意义?

类别值

分类值的一个好的默认值是添加另一个类别,并将其称为“其他”、“未知”,甚至“缺失”。如果缺失值是随机分布的,则该类别可以保持额外的方差,如果缺失值与目标值之间存在有意义的关系,则该类可以保持特征重要性的增加。

回退是以模式的形式计算平均值。与数值一样,考虑值实际试图表示什么以及值可能丢失的原因总是很重要的。如果您知道大多数缺失的值可能是模式,那么可以使用模式进行插补。如果不知道,或者存在不确定性,您可以使用填充文本来计算分类值,该填充文本是数据集的新唯一值。

输入数值的影响

数值插补 1 显示了具有最佳拟合线的散点图。我们沿着类别 (x) 轴有一个数值,沿着值 (y) 轴有目标值。这似乎是一个很好的拟合,但它只考虑了已知 x 的数据点。

数值插补 1:用最佳拟合线绘制已知值

具有线性最佳拟合线的图形。

在数值插补 2 中,我们插补了平均值。然而,缺失的值似乎不是随机的。这会导致最佳拟合线倾斜,并增加噪声,从而降低模型的整体精度。

数值插补 2:已知值和估算平均值的绘图。估算值不是随机分布的,有一条新的最佳拟合线。

带有扭曲最佳拟合线的插补值的图形。

数值插补 3 中的图表显示了当缺失值随机分布时,如果我们插补平均值,会是什么样。换言之,当知道价值是否存在或缺失而无法获得额外知识时。当丢失的值随机分布时,它不会改变最佳拟合线。如果我们插补 0 而不是平均值,它将以与数值插补 2 类似的方式改变最佳拟合线。

数值插补 3:已知值和随机分布估算值的绘图。最佳拟合线没有改变。

带有不扭曲最佳拟合线的插补值的图形。

示例:贷款资格

现实世界中的一个例子是,如果 x 是年收入,y 是某人有资格获得贷款的金额。我们期望一种关系,一个人赚的钱越多,他们可以借的钱就越多。该模式类似于上述数值插补 1。

想象一下,赚更少钱的人不太可能提交他们的年收入。在这种情况下,由于特定原因,x 值丢失。输入这些值的平均值会扭曲模型的结果。结果类似于数值插补 2。

现在,考虑数据库中的一些记录被随机删除。这些记录包含了一些人赚了多少钱的数据,但没有这个人的记录。因此 x 值随机为空。这种影响在数值插补 3 中有描述,我们可以安全地插补缺失的值。

另一个需要考虑的问题是:如果 0 被计算而不是平均值呢?在贷款资格示例中,说某人每年赚 0 美元可能不是一个准确的表述。这将使模型与数值插补 2 类似。

输入分类值的影响

在上述数值示例中,我们使用均值来估算缺失值。分类值的一个简单方法是采用模式,这是最频繁出现的值。输入模式的一些挑战与输入数值的平均值的挑战相同。

在下表中,missing_1 中的缺失值与目标相关,而 missing_2 是随机分布的。我们可以看到这一点,因为 Missing_2 与总体平均目标值匹配。Missing_1 与数值插补 2 相似,Missing_2 与数值插补 3 相似。

分类插补:列 Missing_1 和 Missing_2 是具有或不具有模式的缺失值的示例。

显示 A、B 和 C 类分布以及缺失值的总体平均值和分类插补的图表。

与数值示例的不同之处在于,在这种情况下,Missing_1 和 Missing_2 都会扭曲模式识别。它只针对数据的一个子集,即 B 类,如果使用模式进行输入,则 B 类将是估算值,因为它是最大的类别。

扭曲单一值和目标值之间的关系并不是插补的唯一风险,但它是最常见和最容易评估的风险之一。其他风险往往只会增加噪音并降低准确性。幸运的是,通过删除相对稀疏的维度,可以大大降低倾斜的风险。关于一列或一行中到底允许什么样的稀疏度,经常有争论,但很少有争论认为,输入值有可能以一种不再代表数据试图描述的内容的方式扭曲数据。

了解详情

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!