空单元格在无监督机器学习中的影响

数据挖掘 机器学习 无监督学习 异常检测
2022-02-21 14:07:40

我在一个csv文件中有一个数据框,我想对其执行不同的无监督机器学习算法。

该文件本身有一些未填充的单元格 - 它们只是空的:

在此处输入图像描述

如上图所示,有些单元格是空的。那么问题来了——这些空单元格会影响我想使用的异常值检测过程吗?

还是我应该改用用 0 填充这些空单元格的代码

我被告知必须填充空单元格,这样我们就不会出现数据稀疏性,即使我的 csv 文件有数千行长

任何有关这方面的建议都非常受欢迎。

1个回答

空单元格可以被认为是缺失值的 NaN。有几种方法可以处理缺失值。您可以检查此来源

  • 将 NA 编码为 -1 或 -9999。这对于以正值为主的数值特征以及一般的基于树的模型来说效果相当好。在过去,当开箱即用的机器学习库和算法不太擅长处理缺失数据时,这曾经是一种更常见的方法。

  • 逐个删除缺失数据。在这里,您只需从包含缺失值的数据集中删除所有案例/行。在具有非常少缺失值的非常大的数据集的情况下,这种方法可能会非常有效。但是,如果缺失值在统计上也不同的情况下,此方法可能会严重扭曲使用此数据的预测模型。这种方法的另一个主要问题是它将无法处理任何包含缺失值的未来数据。如果您的预测模型是为生产而设计的,这可能会在部署中产生严重的问题。

  • 用它们出现的特征的平均值/中值替换缺失值。这适用于数字特征。中位数/均值的选择通常与数据的分布形式有关。对于不平衡的数据,中位数可能更合适,而对于对称和更正态分布的数据,均值可能是更好的选择。标签将 NA 编码为分类变量的另一个级别。如果可以对特征进行数字转换(单热编码、频率编码等),这适用于基于树的模型和其他模型。该技术不适用于逻辑回归。

  • 运行估算缺失数据的预测模型。这应该与某种交叉验证方案一起完成,以避免泄漏。这可能非常有效,并且可以帮助最终模型。使用给定行中缺失值的数量来创建新的工程特征。如上所述,缺失的数据通常本身就有很多有用的信号,这是对这些信息进行编码的好方法。