Bagging和Boosting 概念及区别
随机森林属于集成学习(Ensemble Learning)中的bagging算法。在集成学习中,主要分为bagging算法和boosting算法。我们先看看这两种方法的特点和区别。
Bagging
bagging的算法过程如下:
- 从原始样本集中使用Bootstraping方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)
- 对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)
- 对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)
Boosting
boosting的算法过程如下:
- 对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
- 进行迭代的过程中,每一步迭代都是一个弱分类器。我们需要用某种策略将其组合,作为最终模型。(例如AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大)
Bagging,Boosting的主要区别
- 样本选择上:Bagging采用的是Bootstrap随机有放回抽样;而Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重。
- 样本权重:Bagging使用的是均匀取样,每个样本权重相等;Boosting根据错误率调整样本权重,错误率越大的样本权重越大。
- 预测函数:Bagging所有的预测函数的权重相等;Boosting中误差越小的预测函数其权重越大。
- 并行计算:Bagging各个预测函数可以并行生成;Boosting各个预测函数必须按顺序迭代生成。
下面是将决策树与这些算法框架进行结合所得到的新的算法:
- Bagging + 决策树 = 随机森林
- AdaBoost + 决策树 = 提升树
- Gradient Boosting + 决策树 = GBDT
决策树
常用的决策树分为ID3,C4.5,CART三种。决策树模型的构建如下:
决策树的生成
输入:训练集D,特征集A,阈值eps
输出:决策树T
- 若D中所有样本属于同一类Ck,则T为单节点树,将类Ck作为该结点的类标记,返回T
- 若A为空集,即没有特征作为划分依据,则T为单节点树,并将D中实例数最大的类Ck作为该结点的类标记,返回T
- 否则,计算A中各特征对D的信息增益(ID3)/信息增益比(C4.5),选择信息增益最大的特征Ag
- 若Ag的信息增益(比)小于阈值eps,则置T为单节点树,并将D中实例数最大的类Ck作为该结点的类标记,返回T
- 否则,依照特征Ag将D划分为若干非空子集Di,将Di中实例数最大的类作为标记,构建子节点,由结点及其子节点构成树T,返回T
- 对第i个子节点,以Di为训练集,以A-{Ag}为特征集,递归地调用1~5,得到子树Ti,返回Ti
ID3,C4.5决策树的区别
- ID3以信息增益为准则划分属性,递归构建决策树。一般而言,信息增益越大,意味着使用属性进行划分所获得的“纯度提升越大”
- C4.5以增益率为准则划分属性。信息增益准则对取值数目较多的属性有所偏好,增益率对取值数目较少的属性有所偏好,C4.5不是直接选择增益率最大的候选划分属性,而使用一种启发式:先从候选划分属性中找到信息增益高于平均水平的属性,再从中选择增益率最高的
CART
分类与回归树(CART)同样由特征选择、树的生成和剪枝组成。但CART还在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。
CART假设决策树是二叉树,递归地二分每个特征,将输入空间划分为有限个单元,并在这些单元上预测概率分布。
CART由两步组成:
- 树生成:基于训练集生成决策树,生成决策树尽量地大。
- 树的剪枝:用验证集对已生成的树进行剪枝并选择最优子树。
CART决策树的生成(分类)
输入:训练数据集D,特征值集A
输出:CART决策树
停止计算条件:结点中的样本个数小于预定阈值,样本集的Gini系数小于预定阈值(样本基本属于同一类),或者没有更多特征。
根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉决策树:
- 设结点的训练数据集为D,计算现有属性对该数据集的Gini系数。此时,对每一个特征A,对其可能取的每个值a,根据样本点对A=a的测试为“是”或“否”将D分割成D1和D2两部分,计算A=a时的Gini系数。
- 在所有可能的特征A以及它们所有可能的切分点a中,选择Gini系数最小的特征及其对应的切分点作为最优特征与最优切分点。依最优特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。
- 对两个子结点递归地调用步骤l~2,直至满足停止条件。
- 生成CART决策树。
CART决策树的生成(回归)
输入:训练数据集D
输出:回归数f(x)
在训练数据所在输入空间中,递归地将每个区域划分为两个子区域并决定每个子区域的输出值,构建二叉决策树。
- 选择最优切分变量j和切分点s,求解
minj,s[minc1∑xi∈R1(j,s)(yi−c1)2+min