我的训练数据形状为(596000, 58)
,下图显示了一些特征与特征/行中”NAN”数量的关系,使用了train.isnull().sum()
进行统计。
假设每个特征的重要性相同,并且都是分类值,我应该删除cat6和cat8这两列吗?因为cat6
中有411792/596000是NaN,而cat8
中有266928/596000是NaN。
有没有什么方法可以处理这种情况?还是我必须删除这两列?
输入 [12]: train.isnull().sum()
输出 [12]:
回答:
对于分类特征的缺失值,有几种可能的处理策略:
- 删除特征;
- 对于NaN值,设置为该特征中最常见的值;
- 对于NaN值,设置为新的类别(例如,nan_value);
- 最复杂的方法是为当前特征创建一个单独的模型来预测缺失值;
哪种方法最合适?需要更深入地分析你的数据。构建一个简单的基线模型并尝试所有方法。这应该有助于回答你的问题。
在你的情况下,看起来cat6和cat8这两个特征对你来说可能没有用,但你仍然需要简短地调查这个问题。