吃瓜教程 | Datawhale-2021.10打卡(Task03)

目录

  • 第4章 决策树
    • 4.1 基本流程
    • 4.2 划分选择
      • 4.2.1 信息增益
      • 增益率
      • 4.2.3 基尼指数
    • 参考文献

第4章 决策树

4.1 基本流程

决策树(Decision Tree)是一类常见的机器学习方法,可通过方法对样本进行分类与回归任务。以二分类任务为例,决策树是基于数结构进行决策的。

决策树学习的目的是为了得到一棵泛化能力强,即处理未见示例能力强的决策树,决策树学习的算法流程如下图所示:

吃瓜教程 | Datawhale-2021.10打卡(Task03)_第1张图片
决策树的生成是一个递归过程,在决策树的基本算法中,有以下三种情形会导致递归返回:

  1. 当前节点包含的样本全属于同一类别,无需划分;
  2. 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
  3. 当前结点包含的样本集合为空,不能划分。

决策树算法的核心是对样本属性进行划分,使得决策树的分支结点所包含的样本尽可能属于同一类别,即样本的“纯度”(purity)越来越高。

决策树算法通常有三个步骤:特征的选择、决策树的生成、决策树的修剪(对付过拟合问题)。
常见的决策树算法如下图所示:

吃瓜教程 | Datawhale-2021.10打卡(Task03)_第2张图片

建立线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,线性模型如下:

f ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω d x d + b = ω T x + b (3.1) \begin{aligned} f(\bm{x}) &= \omega_{1}x_{1} + \omega_{2}x_{2}+ \cdots +\omega_{d}x_{d} + b\\ &=\bm{\omega}^{\rm{T}}\bm{x}+b \end{aligned} \tag{3.1} f(x)=ω1x1+ω2x2++ωdxd+b=ωTx+b(3.1)

其中 x = ( x 1 ; x 2 ; ⋯   ; x d ) \bm{x}=(x_{1};x_{2};\cdots;x_{d}) x=(x1;x2;;xd) x i x_{i} xi是样本 x \bm{x} x在第 i i i个属性上的取值, ω = ( ω 1 ; ω 2 ; ⋯   ; ω d ) \bm{\omega}=(\omega_{1};\omega_{2};\cdots;\omega_{d}) ω=(ω1;ω2;;ωd) 为权重值, b b b为偏置项,偏置项 b b b增加了模型的自由度。通过上述线性模型,可以通过一些策略和算法来拟合一些数据。

4.2 划分选择

4.2.1 信息增益

信息熵(information entropy)是度量样本集合纯度常用的一种指标,信息熵的大小反映随机变量的不确定性程度(也反映随机变量所包含信息的多少),信息熵越小,随机变量的不确定性程度就越小,样本集合的纯度就越高。假定样本集合 D D D中第 k k k类样本所占的比例为 p k ( k = 1 , 2 , … , ∣ y ∣ ) p_{k}(k=1,2,\dots, \vert{y}\vert) pk(k=1,2,,y),则 D D D的信息熵定义如下:

E n t ( D ) = − ∑ k = 1 ∣ y ∣ ) p k l o g 2 p k (4.1) \begin{aligned} Ent(D)=-\sum\limits_{k=1}^{\vert{y}\vert)}p_{k}\rm{log}_{2}\it{p_{k}} \end{aligned} \tag{4.1} Ent(D)=k=1y)pklog2pk(4.1)

信息增益:表示已知一个随机变量的信息后,使得另一个随机变量的不确定性减少的程度。一般而言,信息增益越大,表示一个随机变量使得另一个随机变量的不确定性减少的程度越大,也就意味着样本的纯度越高。

离散属性 a a a V V V个可能的取值 { a 1 , a 2 , … , a V } \{a^{1},a^{2},\dots,a^{V}\} {a1,a2,,aV} D v D^{v} Dv表示第 v v v个分支结点包含了 D D D中所有在属性 a a a上取值为 a v a^{v} av的样本,给分支结点赋予权重 ∣ D v ∣ / ∣ D ∣ \vert D^{v} \vert/\vert D \vert Dv/D,即样本数越多的分支结点的影响越大,属性 a a a对样本集 D D D进行划分所获得的“信息增益”如下:

G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 ∣ V ∣ ∣ D v ∣ ∣ D ∣ E n t ( D v ) (4.2) \begin{aligned} Gain(D,a)=Ent(D)-\sum\limits_{v=1}^{\vert{V}\vert}\frac{\vert{D^{v}}\vert}{\vert{D}\vert}{Ent(D^{v})} \end{aligned} \tag{4.2} Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)(4.2)

增益率

增益率可以减少算法对于取值数目较多的偏好带来的不利影响,增益率定义为:

G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) (4.3) \begin{aligned} Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} \end{aligned} \tag{4.3} Gain_ratio(D,a)=IV(a)Gain(D,a)(4.3)

I V ( a ) = − ∑ v = 1 ∣ V ∣ ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ (4.4) \begin{aligned} IV(a)=-\sum\limits_{v=1}^{\vert{V}\vert}\frac{\vert{D^{v}}\vert}{\vert{D}\vert}\rm{log}_{2}\it{\frac{\vert{D^{v}}\vert}{\vert{D}\vert}} \end{aligned} \tag{4.4} IV(a)=v=1VDDvlog2DDv(4.4)

4.2.3 基尼指数

数据集 D D D的纯度可用基尼值来度量,基尼值越小,数据集 D D D的纯度越高:
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ 1 p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 (4.5) \begin{aligned} Gini(D)&=\sum\limits_{k=1}^{\vert{y}\vert}\sum\limits_{{k}\prime\neq1}p_{k}p_{k\prime}\\ &=1-\sum\limits_{k=1}^{\vert y \vert}p_{k}^{2} \end{aligned} \tag{4.5} Gini(D)=k=1yk=1pkpk=1k=1ypk2(4.5)

属性 a a a的基尼指数定义为:

G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) (4.6) \begin{aligned} Gini\_index(D,a)&=\sum\limits_{v=1}^{V}\frac{\vert D^{v}\vert}{\vert D\vert}Gini(D^{v}) \end{aligned} \tag{4.6} Gini_index(D,a)=v=1VDDvGini(Dv)(4.6)

参考文献

决策树算法总结

你可能感兴趣的:(吃瓜教程2021.10打卡,决策树,机器学习,人工智能)