每个决策树都是精通某一个领域的专家(因为我们从M的变量中选择m个让每一颗决策树学习),这样在随机森林中就有了很多精通不同领域的专家,对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家投票得到结果。
GBDT的核心在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测之后就能得到真实值的累加值。
一、为每棵决策树抽样产生训练集
从原始数据集中抽取N个训练子集就涉及到统计抽样技术。
1. 不放回抽样
2. 有放回抽样
根据抽样时是否设置权重又分为无权重抽样和有权重抽样
(1)无权重抽样(bagging方法)
假设原数据集中有D个样本,则每个样本不被抽中的概率为(1-1/n)^N。
训练集中存在重复的样本,目的是为了使森林中的决策树不至于产生局部最优解。
(2)更新权重抽样(Boosting)
Boosting抽样,首先随机抽样产生一组训练集,然后对这组训练集中的每一个训练集设定权重为1/n,n为训练集中样本的个数,在设定权重后,对每个带权重的训练集进行测试,在每次测试结束后,对分类性能差的训练集的权重提升,从而产生一个新的权重系列,经过多次训练后,每个训练集就有一个和其对应的权重,在投票时,这些权重就可以对投票的结果产生影响,从而影响最终的决策结果。
二、构建每棵决策树
算法为每个训练子集分别建立一棵决策树,生成N棵决策树从而形成“森林”,每棵决策树任其生长,不需要剪枝处理。
1. 节点分裂
一般都是在CART算法和C4.5算法中选择其中一个来进行结点分裂。
2. 随机特征变量的随机选取
目的:使每棵树之间的相关性减少,同时提升每棵决策树的分类精度,从而提升整个森林的性能而引入的。
随机特征变量的产生方法主要有两种:
(1)随机选择输入变量(Forest-RI) 对于输入变量随机分组(每组有F个变量),然后对于每组变量利用CART方法产生一棵树,并让其充分生长,不进行剪枝。在每个节点上,对输入该节点的变量,再重复前面的随机分组,在重读CART方法,直到将所有节点都为叶结点为止。一般F有两种选择,首先是F=1,其次取小于log2(M)+1的最大正整数,M是输入变量的个数。加入只有很少的输入变量,用Forest-RI方法从M中随机选择F个作为随机特征,可能提高模型的强度,但同时也扩大了相关系数。
(2)随机组合输入变量(Forest-RC)
将随机特征进行线性组合,然后再作为输入变量来构建随机森林的方法。
随机森林的随机性体现在产生决策树的训练样本是随机的,树中节点分裂时选择的最优属性也是随机的。有了这两点随机性,保证了随机森林就不会产生过拟合的现象。
3. 随机森林的性能指标
随机森林分类性能受内外两方面因素影响,从外部因素看,主要来自训练样本的情况,即训练样本的平衡;从内部因素看,主要包括但棵树的分裂强度和树之间的相关度。衡量随机森林性能的三种指标,分类效果指标、泛化误差、运行效率。
(1)分类效果指标
| Classified Positive | Classified Negative
|
Positive | TP | FN |
Negative | FP | TN |
分类精度 Accuracy=(TP+TN)/(TP+TN+FP+FN)
灵敏度Sensitivity=(TP)/(TP+FN)
特异度 Specificity=(TN)/(TN+FP)
几何均值 :只有当正类和负类分类精度都较高时才会高。
查全率(被正确分类的正类样本占所有真实正类样本的比例)Recall= TP/( TP+FN)
查准率(被正确分类的正类占所有预测为正类样本的比例)
Precision=TP/(TP+FP)
错误接受率(在所有为负样本的有多少被识别为正样本了)
FPR=FP/(FP+TN)