定义
随机森林算法的思想就是通过集成学习和随机的方式将多棵树集成的一种算法,通过多棵树对数据集进行学习训练最后投票选举出最佳的一个最终的输出。这里每一棵树是一颗决策树,也叫作一个分类器。
特点:
- 准确率极高
- 不用对决策树剪枝
- 能够很好的处理高维度的数据,不需要降维
- 能很好的处理大数据及
- 在有缺省值的时候也能得到很好的结果
相关概念
信息,熵,信息增益:
其实这几个概念是在决策树中出现的,决策树通过计算每一次分裂的最佳学习增益来决定如何选择下一步将要分裂的属性,也就是特征选取的顺序。
信息是用来消除随机不确定的东西,在决策树中,一般用一个概率公式来表示:
I(X)用来表示随机变量的信息,P(Xi)用来表示xi发生的概率。
熵和信息增益:
在化学中我们也学过关于熵的一些东西,比如熵增加越趋向于混乱,熵减少趋向于稳定,在机器学习中当熵越大表示这个类别的不确定性越大,反之越小。
信息增益是熵增加或者减少的一个数学度量,当信息增量的值为正时表示熵增加了,类的不确定性也增加了,反之变小。
集成学习:
集成学习通过建立多个模型对数据进行学习来解决单一预测带来的预测误差,他的工作原理是汇总多个模型(分类器)的学习结果,这里这些模型是独立作出预测的!然后得出最优的预测结果,所以他的预测结果总是优于或者等于单个模型的预测结果的。上图中的个体学习通常为决策树或者神将网络之类的。
思想:
- 样本选择,在给定的N个数据集中,使用放回采样的形式采取N各样本构成一个新的训练集
- 特征选择,假设每个样本有M个特征,随机从这M个特征中选出m(n<=m)个特征,一般选m=sqrt(M)个特征,然后计算m和特征的信息增益。选择最优特征,这里是无放回的选择!还有一点就是随机森林中不像决策树中那样每次选择一个最大特征最为划分下一个子节点的走向。
- 构建决策树,有了采集的样本集就可以采用一般决策树的构建方法的得到一颗分类的决策树。
- 通过多N个样本构建的决策树就可以得到N个预测,然后再测试样本的时候,使用这N个决策树预测得到的结果使用投票机制就可已得到最终的分类结果。
一些疑问?
为什么要随机选择训练集?
如果不进行随机抽样,每棵树的训练集都一样得到的结果也一样就没有必要进行下去没因为最后的结果都只有一个
为什么要有放回的抽样?
如果没放回的抽样,那每一个样本都没有共同点(或者说相同的特征),那这可是就是有偏向性的,训练的结果都有很大的差异,或者完全不同,最终导致每一个分类器得到的结果都是盲人模型的结果,很片面!
优缺点:
优点:
- 它能够处理很高维度(feature很多)的数据,并且不用做特征选择;
- 由于随机选择样本导致的每次学习决策树使用不同训练集,所以可以一定程度上避免过拟合;
缺点:
- 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合;
- 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的