我可以为表示“有数据”与“没有数据”的每个特征添加一个热编码吗

数据挖掘 数据集 缺失数据 编码
2022-03-11 19:21:29

我有一个数据集,其中有一些漏洞。我想知道是否可以为每个代表特征this feature has datathis feature doesn't have data我的每个特征添加两列。CNN 是否能够利用这一点,或者我应该使用另一种方法来近似结果。

注意我正在寻找替代方案的原因是我有一个非常小的数据集,并且我假设外推会在我使用的任何方法确定缺失值时插入很大的偏差。

样本数据

0.0,0.3,0.2
0.4,Nan,0.2
0.2,0.6,Nan
Nan,0.1,0.5
0.0,0.2,0.0
0.9,Nan,Nan

将转换为

0.0,1,0, 0.3,1,0, 0.2,1,0
0.4,1,0, 0.0,0,1, 0.2,1,0
0.2,1,0, 0.6,1,0, 0.0,0,1
0.0,0,1, 0.1,1,0, 0.5,1,0
0.0,1,0, 0.2,1,0, 0.0,1,0
0.9,1,0, 0.0,0,1, 0.0,0,1

由于我的数据集已经相对较小,我不想特别删除条目。这将使我的数据减少大约三分之一。

如果这是一个“左场外的犯规球”(没有意义并且会导致更多错误),您将如何处理具有大量孔洞的小型数据集。

编辑:根据评论中的@zachdj 建议

而是转换为这个更小的数据集。

0.0,1, 0.3,1, 0.2,1
0.4,1, 0.0,0, 0.2,1
0.2,1, 0.6,1, 0.0,0
0.0,0, 0.1,1, 0.5,1
0.0,1, 0.2,1, 0.0,1
0.9,1, 0.0,0, 0.0,0
1个回答

如果您使用的是 Python,则 Imputer 类可能是一种填补漏洞的方法。您可以使用它来定义什么是缺失值,并定义替换这些值的方法(平均值、中位数、众数、常数值)。在不知道数据是什么的情况下,很难说这是否是一个理想的解决方案,但它是一个非常快速的解决方案。

Imputer 类还包括一个 MissingIndicator 方法,该方法将根据数据输出一个布尔数组。这可能是另一种选择,然后您可以将布尔数组堆叠到原始数据上。