集成学习(Ensemble Learning)—bagging(袋装法)
Bagging(bootstrap aggregating)采用的是随机有放回的选择训练数据构造分类器,最后组合。(一种根据均匀概率分布从数据中重复抽样(有放回)的技术)
随机森林是bagging中的一种方法。以随机森林为例进行说明
随机森林是构造很多颗决策树,形成一个森林,然后用这些决策树共同决策输出类别是什么。
随机森林算法是在构建单一决策树的基础上进行的,同时它也是对单一决策树算法的延伸和改进。
在整个随机森林算法的过程中,有两个随机过程:a. 输入数据—>随机从整体训练数据集中选取一部分作为一颗决策树的构建,而且是有放回的选取。 b. 特征选取—>每棵决策树所需的特征是从整体的特征集中随机选取的。
(这两个随机过程使得随机森林很大程度上避免了过拟合现象的出现)
A、随机森林算法具体实现过程:
- 从训练数据中选取n个数据作为训练数据的输入,一般情况下n是远远小于整体的训练数据N,这样就会造成有一部分数据是无法被去到的,这部分数据被称为袋外数据,可以使用袋外数据做误差分析。
- 选取输入的训练数据后,构建决策树(方法:每一个分裂节点从整体的特征集M中选取m个特征构建,一般情况下m远小于M,通常是log2或者sqrt的数量),从这m个属性中根据某种策略(如gini减少或信息增益等)确定分裂属性。
- 重复b步骤,直到不能分裂或达到我们设定的阈值(如叶子结点树或的树的深度),此时建立了一个决策树
- 重复上面的a,b,c步骤,直到达到预定树的颗数为止。
随机森林算法的注意点:
1、 在构建决策树的过程中是不需要剪枝的。
2、 整个森林的树的数量和每棵树的特征需要人为进行设定。
3、 构建决策树的时候分裂节点的选择是依据最小基尼系数的。
随机森林有很多的优点:
a. 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合。
b. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力。
c. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。
d. 在创建随机森林的时候,对generlization error使用的是无偏估计。
e. 训练速度快,可以得到变量重要性排序。
f. 在训练过程中,能够检测到feature间的互相影响。
g 容易做成并行化方法。
h. 实现比较简单。