一,填充缺失值
填充NaN的方法要取决于特定情况!
填充缺失值常用的方法有以下三种:
- 将NaN替换为一个常数,如-1,-999等等。
这种方法可以认为是将缺失值看成了一个单独的类别。这种方法的缺点是线性网络的性能会受到影响。 - 将NaN替换为均值或者中位数、众数等。
这种方法通常对简单线性模型和神经网络有益。但是对基于树的模型而言,首先选择缺失值的对象可能会更困难。 - 通过已有的值构建出缺失值的值,例如可以专门通过一个模型来预测缺失值。
- 一些模型自带缺失值处理功能,不用专门再处理缺失值,如XGBoost和CatBoost。
需要注意的是有时候缺失值已经被组织者替换了!
二,利用缺失值生成新特征
通常情况下,在特征生成之前要避免填充NaNs!
1,二值特征isnull可能会很有用,它指明了哪些特征是缺失值,可以看做一个类别特征。
在计算平均值或中位数时,这种方法可以解决树和神经网络的问题。 但是这样做的缺点是我们会在数据集中增加两倍的列数。
2,我们想用数