美文网首页秋招-算法
随机森林如何处理缺失值

随机森林如何处理缺失值

作者: 0过把火0 | 来源:发表于2018-10-19 15:49 被阅读11次

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

    暴力填补

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

    相似度矩阵填补

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

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

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

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

    转载注明:https://www.jianshu.com/p/a4bf9224d66c

    相关文章

      网友评论

        本文标题:随机森林如何处理缺失值

        本文链接:https://www.haomeiwen.com/subject/nxvrzftx.html