决策树或者随机森林能够直接处理missing data吗?

  统计/机器学习 监督式学习 数据预处理    浏览次数: 604
0

决策树或者随机森林能够直接处理missing data吗?还是需要做预处理?

 

yayat   2018-07-07 16:27



   1个回答 
4

一。决策树/随机森林(RF)直接处理missing data的方法:

1.CART中可用surrogate splits,但是根据Random Survival Forests,RF不推荐surrogate splits。

"Although surrogate splitting works well for trees, the method may not be well suited for forests. Speed is one issue. Finding a surrogate split is computationally intensive and may become infeasible when growing a large number of trees, especially for fully saturated trees used by forests. Further, surrogate splits may not even be meaningful in a forest paradigm. RF randomly selects variables when splitting a node and, as such, variables within a node may be uncorrelated, and a reasonable surrogate split may not exist. Another concern is that surrogate splitting alters the interpretation of a variable, which affects measures such as VIMP."

2.用C4.5代替CART,C4.5计算information gain时没直接用到missing data。

二。或者用填值(imputation)的方法预处理:

1.用average/median/mode填;或根据原始的RF,用加权后的average/median/mode填,权重是missing data point和其他data point的相识度。

2.用复杂算法去估计missing data,比如R中SVDmiss,交替地算SVD和填值。还有missRangermissForest,交替的填值和进行随机森林。

3.这里提到"on the fly imputation" (OTFI),随机地填其他数据点中出现过的值,但是填充的值不用于split的计算。

4.Handling missing data in trees: surrogate splits or statistical imputation ?其中说填值方法计算量小,效果好。

我的理解是最好用填值,因为填值和训练是独立的两个步骤,填值后数据比较稳定,利于分析,且训练计算量小。对于决策树可以不用填值,但是随机森林需要填值。


SofaSofa数据科学社区 DS面经 问答 实战

Zealing   2018-07-08 01:04

谢谢解答!我还有一个问题,以C4.5为例,missing data不影响information gain的计算,可以得到数值特征的splitting阈值,那么在这个节点上split样本的时候,missing data是放在<=的左边呢,还是>的右边呢? - yayat   2018-07-08 11:15
1.分到data point多的一边 2.一个data在两边都有一部分,按两边data point数比例。比如nonmissing data在左面有90个,在右面10个,那么一个data90%分左面,10%分右面。 3.随机分在两边,分配概率正比与两边data point数。 - Zealing   2018-07-08 13:10
懂了,谢谢大神! - yayat   2018-07-08 13:17


  相关主题

训练集中有的特征含有缺失值,一般怎么处理   5回答

数据预处理中,都有哪些方法能够处理缺失值(missing value)   2回答

如何判断缺失值是否是随机的缺失?   2回答

dataframe每行或者每列中缺失值(na, nan, null)的个数   1回答

pandas DataFrame中去掉缺失值多于50%的列   1回答

如何处理聚类中的missing data   3回答

怎样处理具有大标签的数据?以及标签数据缺失怎么处理?   3回答

python里把数据中某一列中的na,nan,缺失值都替换成0?   1回答

决策树、随机森林中的多重共线性问题   3回答

Extra Tree算法   1回答

决策树可以做多元分类吗?   1回答

决策树怎么做增量学习或者online学习?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!