树模型

决策树

  • 基本分类与回归方法
  • 一棵树表示整个决策过程
  • 根节点包含整个样本集,叶节点对应决策结果,内部节点对应决策过程(属性测试)
  • 根节点到叶节点对应判定测试序列
  • 熵:随机变量不确定性
  • P ( X = x i ) = p i , i = 1 , . . n , H ( X ) = − ∑ i = 1 n p i l o g ( p i ) P(X=x_i)=p_i,i=1,..n,\\H(X)=- \sum_{i=1}^np_ilog(p_i) P(X=xi)=pi,i=1,..n,H(X)=i=1npilog(pi)
  • 熵越大不确定性越大
  • 条件熵: H ( Y ∣ X ) = ∑ i = 1 n P ( X = x i ) H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^nP(X=x_i)H(Y|X=x_i) H(YX)=i=1nP(X=xi)H(YX=xi)
  • 信息增益:特征X的信息使类Y的信息不确定性减少的程度
  • g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)亦称互信息
  • ID3

信息增益=划分前熵-划分后熵
优点:
理论清晰
方法简单
学习能力强
缺点:
只能处理分类属性的数据,不能处理连续属性的数据
子集规模小导致划分不充分而造成统计特征不充分而停止
倾向选取取值较多之属性,优势这类属性可能不会提供太多价值

  • C4.5

信息增益比=信息增益/划分前熵
g r ( D , A ) = g ( D , A ) H A ( D ) , n 是 特 征 A 取 值 个 数 g_r(D,A)=\frac{g(D,A)}{H_A(D)},n是特征A取值个数 gr(D,A)=HA(D)g(D,A),nA
处理连续特征:特征取值排序,以连续两个值中间值作为划分标准

  • CART

二叉树
回归

  • 平方误差最小化
    叶节点预测值是划分到该叶节点所有样本目标值均值
    确定最优化分:遍历所有属性,所有取值来分别尝试划分,并计算最小平方误差
    假设输入空间划分为M个单元 R 1 , . . , R M R_1,..,R_M R1,..,RM ,即M个特征,每个单元 R m R_m Rm上有一个固定输出值
    f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x)=\sum_{m=1}^{M}c_{m}I(x\in R_m) f(x)=m=1McmI(xRm)
    当输入空间的划分确定时,可以用平方误差 ∑ x i ∈ R m ( y i − f ( x i ) ) 2 \sum_{x_i \in R_m}(y_i - f(x_i))^2 xiRm(yif(xi))2来表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优值
    选择最优切分特征 j切分点 s ,具体做法为: min ⁡ j , s [ min ⁡ c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min ⁡ c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \min_{j,s}[\min_{c_1}\sum_{x_i\in R_1(j,s)}{(y_i-c_1)^2}+\min_{c_2}\sum_{x_i\in R_2(j,s)}{(y_i-c_2)^2}] j,smin[c1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2]
    首先遍历特征 j ,对固定的切分特征 j 扫描切分点 s ,选择使上式达到最小值的对 (j,s)
    分类树
    使用 Gini 指数最小化准则来选择特征并进行划分;Gini 指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。另一种理解基尼指数的思路是,基尼指数是为了最小化误分类的概率。
    假设有 K 个类别,样本点属于第k类的概率为p_k,则概率分布的基尼指数定义为:
    G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_k)=1-\sum_{k=1}^{K}p_{k}^{2} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
  • 剪枝
    防止决策树过拟合,提高泛华性能的方法,剪枝分为预剪枝与后剪枝。
    预剪枝是指在决策树的生成过程中,对每个节点在划分前先进行评估,若不能带来泛化性能的提升,停止划分,标记为叶节点。
    后剪枝:从训练集生成一颗完整的决策树,自底向上考察非叶节点,若将节点对应的子树替换为叶节点,能带来泛化性能的提升,则将该子树替换为叶节点。
    判断是否带来泛化性能的提升?
    最简单的留出法,预留一部分数据作为验证集进行性能评估。交叉验证
  • 特征选择。选取能够对训练集分类的特征。关键是准则:信息增益、信息增益比、Gini 指数;
  • 决策树的生成。利用信息增益最大、信息增益比最大、Gini 指数最小作为特征选择的准则。从根节点开始,递归的生成决策树。相当于是不断选取局部最优特征,或将训练集分割为基本能够正确分类的子集;
  • 决策树的剪枝。决策树的剪枝是为了防止树的过拟合,增强其泛化能力。包括预剪枝和后剪枝。
  • 集成学习(ensemble learning)构建并组合多个学习器来完成学习任务。获得比单一学习器显著优越的泛化性能。
  • 个体学习器通常由一个现有的学习算法从训练数据产生(比如 C4.5,BP 等),只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质”的,同质集成中的个体学习器称“基学习器”。不同质的学习器存在于统一集成中,常称为“组件学习器”或直接称为个体学习器。
  • 原则:要获得比单一学习器更好的性能,个体学习器应该好而不同。即个体学习器应该具有一定的准确性,不能差于弱学习器,并且具有多样性,即学习器之间有差异。
  • 根据个体学习器的生成方式,目前集成学习分为两大类:
    个体学习器之间存在强依赖关系、必须串行生成的序列化方法。Boosting;
    个体学习器之间不存在强依赖关系、可同时生成的并行化方法。 Bagging 和随机森林(Random Forest)。
  • Bagging

给出的做法就是对训练集进行采样,产生出若干个不同的子集,再从每个训练子集中训练一个基学习器。由于训练数据不同,我们的基学习器可望具有较大的差异。
Bagging 是并行式集成学习方法的代表,采样方法是自助采样法(bootstrap),用的是有放回的采样。初始训练集中大约有 63.2% 的数据出现在采样集中。
Bagging 在预测输出进行结合时,对于分类问题,采用简单投票法;对于回归问题,采用简单平均法。
优点:

  • 高效。Bagging 集成与直接训练基学习器的复杂度同阶;
  • Bagging 能不经修改的适用于多分类、回归任务;
    包外估计。使用剩下的样本作为验证集进行包外估计(out-of-bag estimate)
    Bagging 主要关注降低方差。(low variance)
  • 偏差(bias)预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据
  • 方差(variance):描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散
  • 随机森林:

Bagging 的一个变体。以决策树为基学习器构建 Bagging,训练过程中引入随机属性选择。
原来决策树从所有特征中,选择最优特征。Ramdom Forest 的每一颗决策树中的每一个节点,先从该节点的特征集中通过bootstrap的方法随机选择 K 个特征的子集,然后从这个特征子集中通过决策树算法选择最优特征进行划分。(注意:除了随机获取特征以外,还能随机获取样本集,使用这些随机抽取的样本得到不同的决策树)
K 控制了随机性的引入程度,是一个重要的超参数。
预测 :
分类:简单投票法;
回归:简单平均法。
构造过程:
1.从原始训练集中使用bootstrap方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集
2.分别训练n_tree个决策树模型
3.对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂
4.每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝
5.组成随机森林。分类问题,按多棵树分类器投票决定最终分类结果;
对于回归问题,由多棵树预测值的均值决定最终预测结果
优点:
1.每次不再考虑全部的属性,而是一个属性子集,所以相比于 Bagging 计算开销更小,训练效率更高;
2.增加属性扰动,随机森林中基学习器的性能降低,使得起始时候性能较差,但是随着基学习器的增多,rf通常会收敛于更低的泛化误差,相比于 Bagging;
3.两个随机性的引入,不易陷入过拟合,抗噪声能力qiang;
4.对数据的适应能力强,可以处理离散和连续的,无需要规范化;
5.可以得到变量的重要性, 基于oob错误率(袋外错误率out-of-bag error)和基于 Gini 系数的变化。
6.不同决策树可以由不同主机并行训练生成,效率很高
缺点:
在噪声较大的时候容易过拟合。

Boosting

个体学习器之间存在强依赖关系,必须串行序列化生成的集成学习方法。三个臭皮匠顶个诸葛亮。Boosting 意为提升,希望将每个弱学习器提升为强学习器。
工作机制如下:
1.从初始训练集中学习一个基学习器;.
2.根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多关注;
3.基于调整后的样本分布来训练下一个基学习器;
4.如此反复,直到基学习器数目达到 T,最终将这 T 个基学习器进行加权结合。
5.对训练样本分布调整,主要是通过增加误分类样本的权重,降低正确分类样本的权重。
Boosting 关注的主要是降低偏差。(low bias)

  • AdaBoost :

提高那些被前一轮弱分类器错误分类样本的权值,降低被正确分类的样本的权值。没有得到正确分类的数据受到后一轮弱分类器的关注;
采用加权多数表决。加大分类错误率低的分类器的权值,使其在表决中起较大作用,减少分类误差率大的弱分类器的权值,使其在表决中起较小作用。
弱分类器被线性组合成为一个强分类器
训练目标:
最小化指数损失函数。
三部分组成:
分类器权重更新公式;
样本分布(也就是样本权重)更新公式;
加性模型。 最小化指数损失函数。
3.3 AdaBoost 优缺点
优点:
分类精度很高
可以使用各种回归分类模型来构建弱学习器,灵活。
作为简单的二元分类器时,构造简单,可理解。
不容易发生过拟合
缺点:
对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

  • GBDT

(Gradient Boosting Decision Tree)又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法。
Regression Decision Tree(DT);
Gradient Boosting(GB);
Shrinkage(算法的一个重要演进分支,目前大部分源码都是基于该版本实现);
GBDT 适用范围;
与随机森林的对比。
DT:回归树
GBDT 全都是回归树,核心是累加所有树的结果作为最终结果。只有回归树的结果累加起来才有意义,分类结果累加是没有意义。
GBDT 调整之后可以用于分类问题,但是内部还是回归树
这部分和决策树中的是一样的,无非就是特征选择。回归树用的是最小化均方误差,分类树是用的是最小化基尼指数(CART)
GB:梯度迭代 Gradient Boosting
Boosting 是集成方法。对弱分类器组合得到强分类器,串行的,弱分类器间依次训练。核心就是每一颗树学习的是之前所有树结论和的残差。
Gradient体现在:无论前面一颗树的 cost function 是什么,是均方差还是均差,只要它以误差作为衡量标准,那么残差向量都是它的全局最优方向,这就是 Gradient。

  • Shrinkage(缩减)是 GBDT 的重要演进分支
    核心思想:每走一小步逼近结果的效果,比每次迈一大步很快逼近结果的方式更容易防止过拟合。
    不信任每次学习到的残差,认为每棵树只学到真理的一小部分,累加的时候只累加一小部分,通过多学习几棵树来弥补不足。
    仍以残差作为学习目标,对残差学出来的结果只累加一小部分(step* 残差)逐步逼近目标,step 一般都比较小 0.01-0.001, 各树的残差是渐变而不是陡变的。
    本质上,Shrinkage 为每一颗树设置了一个 weight,累加时要乘以这个 weight,但和 Gradient 没有关系。
    这个 weight 就是 step。跟 AdaBoost 一样,Shrinkage 能减少过拟合也是经验证明的,目前还没有理论证明。
  • GBDT 适用范围
    回归问题(线性和非线性);
    二分类问题(设定阈值,大于为正,否则为负)和多分类问题
  • GBDT 和随机森林区别(重点)
  • GBDT 和随机森林的相同点:
    多棵树组成;
    最终结果由多棵树共同决定。
  • GBDT 和随机森林的不同点:
    rf可以是分类树、回归树;
    GBDT 只能是回归树;
    组成rf的树可并行生成(Bagging);GBDT 只能串行生成(Boosting);
    这两种模型都用到了Bootstrap的思想。
    对于最终的输出结果,随机森林使用多数投票或者简单平均
    GBDT 将所有结果累加,或加权累加
    随机森林对异常值不敏感,GBDT 对异常值非常敏感;
    随机森林训练集权值一样,GBDT 是基于权值的弱分类器的集成
    随机森林通过减小模型的方差提高性能,GBDT 通过减少模型偏差提高性能。
  • GBDT 相比决策树优点
    泛化性能更好
    每一步的残差计算增大分错样本权重,分对样本都趋向于0。更专注分错的样本
  • Gradient 体现在
    残差是全局最优的绝对方向,类似于求梯度。
  1. re-sample
    GBDT 在使用残差的同时引入 Bootstrap re-sampling,GBDT 多数实现版本中引入了这个选项,是否一定使用有不同的看法。
    原因在于 re-sample 导致的随机性,使得模型不可复现,对于评估提出一定的挑战,比如很难确定性能的提升是由于 feature 的原因还是 sample 的随机因素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值