集成学习(Ensemble Learning)主要分为三类:
- 用于减少方差的
Bagging
(可并行生成) - 用于减少偏差的
Boosting
(存在强依赖关系必须串行生成) - 用于提升预测结果的
Stacking
1)Bagging + 决策树 = 随机森林
2)AdaBoost + 决策树 = 提升树
3)Gradient Boosting + 决策树 = GBDT
这个说法对吗??
1.Bagging
套袋法,算法流程:
- 在训练样本集中使用
Bootstraping Sampling
采样n个样本,总共进行k轮抽取,得到k个训练集; - 分别训练k个训练集得到k个模型(
基学习器
) - 如果是分类问题,可使用
投票
得到分类结果;如果是回归问题,可取k个模型输出的均值
作为最后结果。
解释Bootstrap Sampling
:自助采样法,它是一种有放回
的抽样方法。
为什么要有放回采样呢?如果每个基学习器的训练样本都不一样,那么训练出来的效果差异就大,一个强的集成的学习器是要确保下面的基学习器不能太弱。
对于Bagging需要注意的是,每次训练集可以取全部的特征进行训练,也可以随机选取部分特征训练,例如随机森林就是每次随机选取部分特征。
Random Forest(随机森林)
Random Forest
是Bagging
的变体,基学习器是决策树
,属于树模型
。
树模型和线性模型的区别:树模型
是一个一个特征进行处理,线性模型
是所有特征给予权重相加得到一个新的值。
解释决策树
决策树是一种基本的分类与回归方法,学习通常包含两个步骤:特征选择
和剪枝
。
决策树常见的三个算法:
- ID3算法:选择
信息增益
最大的特征 - C4.5算法:用
信息增益比
来选择特征 - CART算法:用
基尼指数
来选择特征
- 特征选择 :使用满足划分准则的特征不断的将数据集划分为纯度更高,不确定性更小的子集的过程。
有三种方式:
1.1 信息增益:信息增益越大,表示用属性a来进行划分带来的信息越多,该属性越重要。
公式:
D表示样本集合,Ent表示信息熵,a表示属性a,V表示属性a的取值集合,|Dv|表示属性a、取值v包含的样本数。
信息熵:在信息论和概率统计中,熵是表示随机变量不确定性的度量。熵越大,随机变量的不确定性就越大。其实信息熵就是信息的期望值,所以我们可知,信息熵越越小,信息的纯度
越高,也就是信息越少,在分类领域来讲就是里面包含的类别越少,所以我们可以得出,与初始信息熵的差越大分类效果越好。
pk表示样本集合D中第k类样本所占的比例。
举个例子:p=0.5相当于投硬币正反两面的概率都是0.5,熵为1,说明不确定性的程度很大。
缺点:
信息增益仅仅能考察特征对整个系统的贡献,而不能详细到某个类别上,这就使得它仅仅适合用来做所谓“全局”的特征选择(指全部的类都使用同样的特征集合)。而无法做“本地”的特征选择(每一个类别有自己的特征集合,由于有的词。对这个类别非常有区分度。对还有一个类别则无足轻重)。
1.2 信息增益比(增益率)
因为信息增益对取值数目多的属性有所偏好,为减轻这种偏好带来的不利影响,故引入信息增益比。
其中IV(a)称为a的固有值,属性a的可能取值数目越多,IV(a)的值通常会越大。
1.3 基尼指数:反映了随机抽取两个样本,其类别标记不一致的概率。
属性a的基尼指数定义为
优化
举个例子去理解:
第一种情况:0.1,0.1,0.8 和 0.1,0.1,0.8 ,基尼指数是0.34
第二种情况:0.1,0.1,0.8 和 0.3,0.3,0.4 ,基尼指数是0.69
分类优化的目标显然是第二种情况,把ground truth对应那一类的得分尽可能擡高,其它类压低,基尼指数越小,不确定性越小,说明该属性越重要。
- 剪枝:决策树算法对抗
过拟合
的主要手段。
剪枝的两种方式:
预剪枝
:(从上而下)在决策树生成过程中,对每个节点划分前先进行估计,如果划分不能带来性能提升,则停止划分将当前节点标记为叶子节点。
特点: 这是一种贪婪的做法,即使当前划分不能带来性能提升,后续子树的划分仍可能带来性能提升,容易导致欠拟合
。
后剪枝
:(从下而上)生成一棵完整的决策树后,从下而上,对非叶子节点进行估计,若将该节点的子树替换为叶子节点能带来性能提升,则将该节点的子树替换为叶子节点。
特定:欠拟合的风险比预剪枝小,预剪枝是在训练过程中完成,后剪枝在训练之后完成,时间开销更大
。
决策树学习:采用自顶向下的递归的方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处熵值为0(叶节点中的实例都属于一类)。
2.Boosting
AdaBoost
GBDT
XGBoost
Lightgbm
3.Stacking
Ref
信息增益的特征选择方法