【学习笔记】集成学习-基础与算法 第一章(1)

本文是基于《集成学习 基础与算法》的学习笔记。
文章大部分内容来自于网络的各种博客总结,本博文仅仅作为本人学习笔记,不做商业用途。



1.2 常用学习算法

1.2.1 线性判别分析

线性分类器有权重向量 w w w 和偏差项 b 构成。给定样例 x x x,其按如下规则预测获得类别标记 y:
y = s i g n ( w T x + b ) \begin{aligned} &y=sign(w^Tx+b)\\ \end{aligned} y=sign(wTx+b)注意:符号函数,括号内数值小于 0 时,y = -1,括号内数值等于 0 时,y = 0, 括号内数值大于 0 时,y = 1.
为了寻找最优的线性分类器,一个经典的学习算法是线性判别分析 (Fisher’s linear discriminant analysis, LDA)。LDA 的基本想法是使不同类的样本尽量远离,同时使同类样本尽可能靠近。这一目标可以通过扩大不同类别样本的类中心距离,同时缩小每个类别的类内方差来实现
在这里插入图片描述
在这里插入图片描述
此问题的最优解可写为:
w ∗ = ( Σ + + Σ − ) − 1 ( μ + − μ − ) \begin{aligned} &w^*=(\Sigma_{+}+\Sigma_{-})^{-1}(\mu_{+}-\mu_{-})\\ \end{aligned} w=(Σ++Σ)1(μ+μ)注意:推导可参考 https://zhuanlan.zhihu.com/p/32658341.
若两类样本都来自具有相同方差的正态分布,那么偏差项 b 的最优解就是两个类中心的均值,即
b ∗ = w T ( μ + + μ − ) / 2 \begin{aligned} &b^*=w^{T}(\mu_{+}+\mu_{-})/2\\ \end{aligned} b=wT(μ++μ)/2

1.2.2 决策树

一棵决策树 (decision tree) 由一系列按 ”分而治之“ (divide-and-conquer) 方式组织的树状决策测试构成。决策树的核心算法是如何选择分割。

给定训练集 D D D ,此数据集的熵 (entropy) 定义为 E n t ( D ) = − ∑ y ∈ Y P ( y ∣ D ) l o g P ( y ∣ D ) \begin{aligned} &Ent(D)=-\sum_{y\in Y}P(y|D)logP(y|D)\\ \end{aligned} Ent(D)=yYP(yD)logP(yD)
参考 https://zhuanlan.zhihu.com/p/147662150.

举例来计算信息熵:
集合 1:5 次去打篮球,1 次不去打篮球
在这里插入图片描述
集合 2:3 次去打篮球,3 次不去打篮球
在这里插入图片描述
信息熵越大,纯度越低。

ID3 算法 选择信息增益 (information gain) 作为分割准则。
如果数据集 D D D 被分成子集 D 1 , . . . , D k D_1,...,D_k D1,...,Dk ,相应的熵会减少,所减少的熵被称为”信息增益“,即
G ( D ; D 1 , . . . , D k ) = E n t ( D ) − ∑ i = 1 k ∣ D i ∣ ∣ D ∣ E n t ( D i ) \begin{aligned} &G(D;D_1,...,D_k)=Ent(D)-\sum_{i=1}^{k}{{|D_i|}\over{|D|}}Ent(D_i)\\ \end{aligned} G(D;D1,...,Dk)=Ent(D)i=1kDDiEnt(Di) 基于此,能够产生最大信息增益的 ”特征-值“ 组合会被选作分割。

举例来计算:
训练集中一共有 7 条数据,3 次打篮球,4 次不打篮球
在这里插入图片描述
所以根节点(7天有3次去,4次不去)的信息熵是:
在这里插入图片描述
如果将天气作为属性的划分,会有三个叶子节点 D1、D2 和 D3,分别对应的是晴天、阴天和小雨。
分别计算三个叶子节点的信息熵:
在这里插入图片描述
那么作为子节点的归一化信息熵 = 3/70.918+2/71.0+2/7*1.0=0.965。
天气作为属性节点的信息增益为,Gain(D , 天气)=0.985-0.965=0.020。
同理我们可以计算出其他属性作为根节点的信息增益,它们分别为 :
Gain(D , 温度)=0.128
Gain(D , 湿度)=0.020
Gain(D , 刮风)=0.020
我们能看出来温度作为属性的信息增益最大。因为 ID3 就是要将信息增益最大的节点作为父节点,这样可以得到纯度高的决策树,所以我们将温度作为根节点。其决策树状图分裂为下图所示:
在这里插入图片描述
然后我们要将上图中第一个叶节点,也就是 D1={1-,2-,3+,4+}进一步进行分裂,往下划分,计算其不同属性(天气、湿度、刮风)作为节点的信息增益,可以得到:
Gain(D , 湿度)=1
Gain(D , 天气)=1
Gain(D , 刮风)=0.3115
我们能看到湿度,或者天气为 D1 的节点都可以得到最大的信息增益,这里我们选取湿度作为节点的属性划分。同理,我们可以按照上面的计算步骤得到完整的决策树,结果如下:
在这里插入图片描述
于是我们通过 ID3 算法得到了一棵决策树。

ID3 的算法规则相对简单,可解释性强。同样也存在缺陷,比如我们会发现 ID3 算法倾向于选择取值比较多的属性。这样,如果我们把“编号”作为一个属性(一般情况下不会这么做,这里只是举个例子),那么“编号”将会被选为最优属性 。

这一不足在著名的 C4.5算法 中被解决。具体而言, C4.5 算法使用 “信息增益率” (gain ratio) 作为选择分割的标准,即
P ( D ; D 1 , . . . , D k ) = G ( D ; D 1 , . . . , D k ) ∗ ( − ∑ i = 1 k ∣ D i ∣ ∣ D ∣ l o g ∣ D i ∣ ∣ D ∣ ) − 1 \begin{aligned} &P(D;D_1,...,D_k)=G(D;D_1,...,D_k)*(-\sum_{i=1}^{k}{{|D_i|}\over{|D|}}log{{|D_i|}\over{|D|}})^{-1}\\ \end{aligned} P(D;D1,...,Dk)=G(D;D1,...,Dk)(i=1kDDilogDDi)1在信息增益的基础上,信息增益率使用特征的取值数做归一化。这样,在所有具有较好信息增益的特征中,具有最高信息增益率的特征被选择作为分割。

CART 算法,使用 “基尼系数” (Gini index) 作为分割标准,即
G g i n i ( D ; D 1 , . . . , D k ) = I ( D ) − ∑ i = 1 k ∣ D i ∣ ∣ D ∣ I ( D i ) \begin{aligned} &G_{gini}(D;D_1,...,D_k) =I(D)-\sum_{i=1}^{k}{{|D_i|}\over{|D|}}I(D_i)\\ \end{aligned} Ggini(D;D1,...,Dk)=I(D)i=1kDDiI(Di)其中,
I ( D ) = 1 − ∑ y ∈ Y P ( y ∣ D ) 2 \begin{aligned} &I(D) =1-\sum_{y\in Y}{P(y|D)}^2\\ \end{aligned} I(D)=1yYP(yD)2基尼系数本身反应了样本的不确定度。当基尼系数越小的时候,说明样本之间的差异性小,不确定程度低。分类的过程本身是一个不确定度降低的过程,即纯度的提升过程。所以 CART 算法在构造分类树的时候,会选择基尼系数最小的属性作为属性的划分。

对于决策树来说,在训练集上表现完美的决策树可能具有更差的泛化能力,这种现象被称为 “过拟合” (overfitting)。为了降低过拟合的风险,常用策略有 “剪枝” (pruning) 去除由于训练数据集上的噪声或特质而产生出来的分支。通常,“预剪枝” (pre-pruning) 在树生长时执行剪枝操作,而 “后剪枝” (post-pruning) 在树生长完成时再检查并决定去除哪些分枝。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值