随机森林如何处理缺失值?

RF中有相应的缺失值处理方法,本次记录其两种缺失值处理技巧

暴力填补

Python中的na.roughfix包提供简单的缺失值填补策略:
对于训练集中处于同一个类别下的数据,如果是类别变量缺失,则用众数补全,如果是连续变量,则用中位数。

相似度矩阵填补

RF的Python实现中,有一个rfImpute包,可以提供更加高层的缺失值填补。

  1. 首先先用暴力填补法进行粗粒度填充。
  2. 然后使用上述填补后的训练集来训练随机森林模型,并统计相似度矩阵(proximity matrix),然后再看之前缺失值的地方,如果是分类变量,则用没有缺失的观测实例的相似度中的权重进行投票;如果是连续性变量,则用相似度矩阵进行加权求均值。
  3. 上述投票方案迭代进行4~6次。

解释相似度矩阵:
相似度矩阵就是任意两个观测实例间的相似度矩阵,原理是如果两个观测实例落在同一棵树的相同节点次数越多,则这两个观测实例的相似度越高。

详细来说:
Proximity 用来衡量两个样本之间的相似性。原理就是如果两个样本落在树的同一个叶子节点的次数越多,则这两个样本的相似度越高。当一棵树生成后,让数据集通过这棵树,落在同一个叶子节点的”样本对(xi,xj)” proximity 值 P(i,j) 加 1 。所有的树生成之后,利用树的数量来归一化 proximity matrix。继而,我们得到缺失值所在样本的权重值,权重值相近的可以用于缺失值的填补参考。


作者:0过把火0
链接:https://www.jianshu.com/p/a4bf9224d66c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(机器学习小知识)