随机森林中训练每一棵树输入的m个特征都是随机选取的吗? 举报 理由 举报 取消 RF要有很多树,每棵树选同等数目的特征,比如第一棵树随机选1,3,5号特征,第二棵树随机选2,4,6号特征,是这个意思吗?还是所有树都随机选出1,3,5呢? 2017年10月31日 10 条回复 1812 次浏览 学习,数据挖掘,机器,算法
回复 ( 10 )
先贴算法。图来自于周志华老师的书[1]:Ensemble Methods: Foundations and Algorithms——————————————————————————————
本回答涉及到的文献:
1. Z.-H. Zhou. Ensemble Methods: Foundations and Algorithms, Boca Raton, FL: Chapman & Hall/CRC, 2012. (ISBN 978-1-439-830031)
2. L. Breiman. Random forests.Machine Learning, 45(1):5–32, 2001.
3.T. K. Ho. The random subspace method for constructing decision forests.
IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(8):
832–844, 1998.
不是每棵树随机选择特征,而是每一个结点都随机选择特征。
除了一次性随机抽取部分特征用来构建一棵CART之外,还可以在CART每次branching的时候随机抽取一部分特征计算Gini impurity或均方误差来选择best split feature(RF作者使用的这种方法)。更进一步,在构建sub-space的时候,不仅可以使用feature selection,还可以使用feature transformation,每次braching随机选择一个变换矩阵将原始feature变换到低维空间。More randomness, more robust ^ ^
针对为什么在每次branching的时候只从随机抽取的部分feature中找best split做补充。如果数据集中有几个feature是十分predictive的,那么所有的CART在branching都倾向于使用这个几个feature,最终结果是虽然每棵树的训练样本不相同,但仍然长得很像,而在branching上加randomness可以消除这种现象。
每棵树随机抽,第一棵抽中135,第二棵再独立抽。使得每棵树只拿到一部分信息。
泻药。
@张馨宇 和 @Stark Einstein 两位大牛的回答言简意赅,相信已经可以解答题主的问题了。
我只谈谈我对随机森林的使用:
1、它是一个Out Of Box的算法,也就是它对超参数的依赖不强,可以拿来即用;
所以一开始接触数据挖掘的时候,感觉随机森林真是美,直接把数据扔进模型,不用数据预处理、进行简单调参(其实就是试个值),就能得到一个相对不错的的结果。
2、它的另一个更重要的作用是用来做 特征提取。
每棵树都是解决一部分问题的专家,所以当然要随机不同的东西。
跟常规的bagging区别就是不仅样本random,feature也random,所以每棵树的样本的feature也random,不一定不一样哦(一样的概率太小了)
随机森林的每棵树训练过程,主要是两大点,采样和全分裂。楼主问的是采样过程,这里简单说下。随机森林的采样又包括行采样和列采样,对于行采样是采取有放回的采样,采样的个数等于样本总个数,列采样是随机的采样,对于列采样的个数n1是要小于总列数n(特征数)的。
每次都是有放回的随机抽样。第一次是135,第二次可能是135,也可能是123,124,234,456…前一次抽样与后一次抽样相互独立。
随机选取,但是是有放回的,可能会重复吧