人工智能-机器学习-随机森林如何处理缺失值?

开课吧开课吧锤锤2021-02-04 13:51

解析一

众所周知,机器学习中处理缺失值的方法有很多,然而,由题目“随机森林如何处理缺失值”可知,问题关键在于随机森林如何处理,所以先简要介绍下随机森林吧。

随机森林是由很多个决策树组成的,首先要建立Bootstrap数据集,即从原始的数据中有放回地随机选取一些,作为新的数据集,新数据集中会存在重复的数据,然后对每个数据集构造一个决策树,但是不是直接用所有的特征来建造决策树,而是对于每一步,都从中随机的选择一些特征,来构造决策树,这样我们就构建了多个决策树,组成随机森林,把数据输入各个决策树中,看一看每个决策树的判断结果,统计一下所有决策树的预测结果,Bagging整合结果,得到最终输出。

人工智能面试

那么,随机森林中如何处理缺失值呢?根据随机森林创建和训练的特点,随机森林对缺失值的处理还是比较特殊的。

首先,给缺失值预设一些估计值,比如数值型特征,选择其余数据的中位数或众数作为当前的估计值,然后,根据估计的数值,建立随机森林,把所有的数据放进随机森林里面跑一遍。记录每一组数据在决策树中一步一步分类的路径,然后来判断哪组数据和缺失数据路径最相似,引入一个相似度矩阵,来记录数据之间的相似度,比如有N组数据,相似度矩阵大小就是N*N,如果缺失值是类别变量,通过权重投票得到新估计值,如果是数值型变量,通过加权平均得到新的估计值,如此迭代,直到得到稳定的估计值。

其实,该缺失值填补过程类似于推荐系统中采用协同过滤进行评分预测,先计算缺失特征与其他特征的相似度,再加权得到缺失值的估计,而随机森林中计算相似度的方法(数据在决策树中一步一步分类的路径)乃其独特之处。

解析二

randomForest包里,有两种补全缺失值的方法。

方法一(na.roughfix)简单粗暴,对于训练集,同一个class下的数据,如果是分类变量缺失,用众数补上,如果是连续型变量缺失,用中位数补。

方法二(rfImpute)这个方法计算量大,至于比方法一好坏?不好判断。先用na.roughfix补上缺失值,然后构建森林并计算proximity matrix,再回头看缺失值,如果是分类变量,则用没有缺失的观测实例的proximity中的权重进行投票。如果是连续型变量,则用proximity矩阵进行加权平均的方法补缺失值。然后迭代4-6次,这个补缺失值的思想和KNN有些类似12。

人工智能在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用。发展前景很可观,有对人工智能感兴趣的同学就赶快学习起来吧。以上就是小编今天为大家整理发布的“人工智能-机器学习-随机森林如何处理缺失值?”一文,希望为正在学习人工智能的朋友提供学习参考,更多人工智能面试尽在开课吧广场人工智能面试频道!

有用
分享