机器学习面试题-如何处理特征向量的缺失值

1) 缺失值较多

缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的噪声,对结果造成不良影响。

2) 缺失值较少

缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理:

  • 方式1: 把NaN直接作为一个特征,假设用0表示;

    data_train.fillna(0)
    
  • 方式2: 用均值填充;

    均值填充可能需要取条件均值,例如某训练集中患癌症和不患癌症的数据中,该值的差距很大,那么就应当填充label相同的数据的均值。

    data_train.fillna(data_train.mean())
    
  • 方式3:用上下数据进行填充;

    # 上一个数据填充
    data_train.fillna(method='pad')
    # 下一个数据填充
    data_train.fillna(method='bfill')
    
  • 方式4:插值法

    # 即估计中间点的值
    data_train.interpolate()
    
  • 方式5:用随机森林等算法拟合

    将数据分为有值和缺失值2份,对有值的数据采用随机森林拟合,然后对有缺失值的数据进行预测,用预测的值来填充。


标签:

本站使用 「署名 4.0 国际」 创作共享协议,转载请注明出处