决策树与集成算法

一、决策树

1、树模型

  • 决策树:从根节点开始一步步走到叶子节点(决策)
  • 所有的数据最终都会落到叶子节点,既可以做分类也可以做回归

2、树的组成

  • 根节点:第一个选择点
  • 非叶子节点与分支:中间节点
  • 叶子节点:最终的决策结果

3、决策树的训练与测试

  • 训练阶段:从给定的训练集构造出来一棵树(从根节点开始选择特征,重点在于如何进行特征切分)
  • 测试阶段:根据构造出来的树模型从上到下去执行一遍
  • 难点:决策树的难点在于如何构建树模型,需要考虑的因素很多

4、如何切分特征(选择节点)

通过一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推。

5、经典衡量标准—熵

  • :表示随机变量不确定性的度量(物体内部的混乱程度)
  • 公式: H ( x ) = − ∑ i = 1 n p i ∗ log ⁡ p i ,    i = 1 , 2 , ⋯   , n (1) H(x)=-\sum_{i=1}^np_i*\log p_i,\,\,i=1,2,\cdots,n\tag{1} H(x)=i=1npilogpi,i=1,2,,n(1)
  • 例子:两个集合,即: A = [ 1 , 1 , 1 , 1 , 1 , 2 , 2 ] ,    B = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] (2) A=[1,1,1,1,1,2,2],\,\,B=[1,2,3,4,5,6,7]\tag{2} A=[1,1,1,1,1,2,2],B=[1,2,3,4,5,6,7](2)显然A集合的熵值要低,因为A里面只有两种类别,相对稳定一些;而B中类别太多,熵值就会大很多。
  • 事物的不确定越大,其熵值也就越大。
    p = 0 p=0 p=0 p = 1 p=1 p=1时, H ( p ) = 0 H(p)=0 H(p)=0,随机变量完全没有不确定性;
    p = 0.5 p=0.5 p=0.5时, H ( p ) = 1 H(p)=1 H(p)=1,随机变量的不确定性最大。
  • 通过信息增益来决策一个节点的选择。信息增益说表示特征X使得类Y的不确定性减少的程度。

6、改进衡量标准

(1)ID3

ID3就是用信息增益来衡量特征的重要性。

(2)C4.5

用信息增益率,解决了ID3问题,考虑了自身熵值。

(3)CART

使用Gini系数来当做衡量标准,计算公式为: G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 (3) Gini(p)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2\tag{3} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2(3)和熵的衡量标准类似,计算方式不相同。

7、剪枝策略

  • 决策树过拟合风险很大,理论上可以完全分得开数据,因此需要进行剪枝。
  • 剪枝策略:预剪枝,后剪枝
  • 预剪枝:边建立决策树边进行剪枝的操作(使用较多)
  • 后剪枝:当建立完决策树后来进行剪枝操作

(1)预剪枝

在构建决策树时,限制深度、叶子节点个数、叶子节点样本数、信息增益量等。

(2)后剪枝

通过一定的衡量标准,即: C α ( T ) = C ( T ) + α ⋅ ∣ T l e a f ∣ (4) C_\alpha(T)=C(T)+\alpha\cdot|T_{leaf}|\tag{4} Cα(T)=C(T)+αTleaf(4)叶子节点越多,损失越大。

二、集成算法

1、Ensemble learning

  • 目的:让机器学习效果更好
  • Bagging:训练多个分类器取平均 f ( x ) = 1 M ∑ m = 1 M f m ( x ) (5) f(x)=\frac1M\sum_{m=1}^Mf_m(x)\tag{5} f(x)=M1m=1Mfm(x)(5)
  • Boosting:从弱学习器开始加强,通过加权来进行训练 F m ( x ) = F m − 1 ( x ) + arg min ⁡ h ∑ i = 1 n L ( y i , F m − 1 ( x i ) + h ( x i ) ) (6) F_m(x)=F_{m-1}(x)+\argmin_h\sum_{i=1}^nL(y_i,F_{m-1}(x_i)+h(x_i))\tag{6} Fm(x)=Fm1(x)+hargmini=1nL(yi,Fm1(xi)+h(xi))(6)
  • Stacking:聚合多个分类或回归模型(可以分阶段来做)

2、Bagging模型

  • 全称:bootstrap aggregation(其实就是并行训练一堆分类器)
  • 最典型的代表就是随机森林
  • 随机:数据采样随机,特征选择随机
  • 森林:很多个决策树并行放在一起
  • 随机森林优势:
    ① 它能够处理很高维度(特征很多)的数据,并且不用做特征选择
    ② 在训练完后,它能够给出哪些特征比较重要
    ③ 容易做成并行化方法,速度比较快
    ④ 可以进行可视化展示,便于分析

3、Boosting模型

  • 典型代表:Adaboost、Xgboost
  • Adaboost会根据前一次的分类效果调整数据权重
  • 解释:如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重
  • 最终的结果:每个分类器根据自身的准确性来确定各自的权重,再结合

4、Stacking模型

  • 堆叠:暴力模型,拿来一堆分类器直接上
  • 可以堆叠各种各样的分类器(KNN,SVM,RF等等)
  • 分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练
  • 堆叠在一起确实能使得准确率提升,但是速度是个问题!

三、参考文献

[1] 唐宇迪. 跟着迪哥学Python数据分析与机器学习实战[M]. 北京: 人民邮电出版社, 2019: 154-174.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值