主要学习目标
我们主要的学习目的是简单看一遍西瓜书里面的内容,尽可能的对各个模型都有一定的了解,在本节课程当中,我会给大家分享机器学习相关的的内容,我主要是在学习吴恩达老师最新的机器学习的视频,但是学完之后还是觉得较为空泛,所以在此,借机会再重新复习
基本流程
首先简单介绍一下决策树的作用,其主要的作用是分类,以二分类为例,会对实例是否为正例进行判断,如果是正例则分为正例,反之则为反例,可以简单理解为if-else的判断语句
决策树的目的是产生一棵泛化能力强,即处理未见示例能力强的决策树
划分选择
要求选择出最优的划分属性
信息增益
信息熵的定义为
Ent
(
D
)
=
−
∑
k
=
1
∣
Y
∣
p
k
log
2
p
k
\operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k}
Ent(D)=−k=1∑∣Y∣pklog2pk
Ent
(
D
)
\operatorname{Ent}(D)
Ent(D)越小,说明
D
D
D的纯度越高
信息熵表示的是不确定性可以理解为集合当中的样本的纯度
假定
a
a
a有
V
V
V个可能的取值,
D
v
D^v
Dv表示的是第
v
v
v个分支结点包含了
D
D
D中所有在属性
a
a
a上取值为
a
v
a^v
av的样本,令
∣
D
v
∣
∣
D
∣
\frac{\left|D^{v}\right|}{|D|}
∣D∣∣Dv∣表示占比,可以得到条件熵的概念
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Ent
(
D
v
)
\displaystyle\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right)
v=1∑V∣D∣∣Dv∣Ent(Dv)
从而得到信息增益的概念
Gain
(
D
,
a
)
=
Ent
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Ent
(
D
v
)
\operatorname{Gain}(D, a)=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right)
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
信息熵的作用就在于计算得到我每一个值,每一个属性的信息增益的大小然后对数据进行划分,在划分的过程当中,信息增益越大,表明选择属性
a
a
a的纯度越高,选择该属性进行划分的可能性也就越大
增益率
信息增益的准则极有可能导致计算得到的决策树不平衡,也许在训练集上可以表现较好的结果,但是在引入新的数据之后可能会存在无法进行有效预测的情况
因此,为避免信息增益准则对可取值数目较多的属性有所偏好,减少这样的行为说造成的不利影响,引入增益率的概念
Gain-ratio
(
D
,
a
)
=
Gain
(
D
,
a
)
IV
(
a
)
\text {Gain-ratio }(D, a)=\frac{\operatorname{Gain}(D, a)}{\operatorname{IV}(a)}
Gain-ratio (D,a)=IV(a)Gain(D,a)
其中
IV
(
a
)
=
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
log
2
∣
D
v
∣
∣
D
∣
\operatorname{IV}(a)=-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \log _{2} \frac{\left|D^{v}\right|}{|D|}
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
表示的是属性
a
a
a的固有值,属性
a
a
a越多,那么
IV
(
a
)
\operatorname{IV}(a)
IV(a)也会越大
增益率注意事项
增益率会存在对数目少的属性有所偏好,所以采用在候选划分属性中选择增益高于平均水平的属性,再选择增益率最高的
基尼指数
在基于提高纯度,对纯度进行判断的考虑,引入基尼指数的概念,对数据集
D
D
D的划分可以写成
Gini
(
D
)
=
∑
k
=
1
∣
Y
∣
∑
k
′
≠
k
p
k
p
k
′
=
1
−
∑
k
=
1
∣
Y
∣
p
k
2
\begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{\mid \mathcal{Y |}} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned}
Gini(D)=k=1∑∣Y∣k′=k∑pkpk′=1−k=1∑∣Y∣pk2
Gini
(
D
)
\operatorname{Gini}(D)
Gini(D)越小,说明数据集的纯度越高,基尼指数可以用于分类和回归
基尼指数的定义如下
Gini-index
(
D
,
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Gini
(
D
v
)
\text { Gini-index }(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\operatorname{Gini}\left(D^{v}\right)
Gini-index (D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
剪枝
简直主要使用的是预剪枝和后剪枝,剪枝是为了尽可能提高泛化性能
预剪枝
预剪枝的优点在于
- 可以减少训练时间的开销以及测试时间的开销
- 避免了过拟合
缺点则在于 - 本质上是根据贪心算法来禁止开支,有可能导致欠拟合的问题
后剪枝
后剪枝的优点在于
- 欠拟合风险小
- 泛化性能往往高于预剪枝
缺点在于 - 训练之间较长
- 是在训练完成之后采用自底向上的方法进行分析
连续与缺失值
连续值处理
对于连续值来说,我们采用的方法就是连续值进行离散化的方法
对
n
−
1
n-1
n−1个元素选择候选划分点(对于为什么要取
n
−
1
n-1
n−1,个人人为是在划分的时候采用的是对该区间值采取中值,如果取
n
n
n个则有的值不能保证取到中值,降低了数据的准确度)
T
a
=
{
a
i
+
a
i
+
1
2
∣
1
⩽
i
⩽
n
−
1
}
T_{a}=\left\{\frac{a^{i}+a^{i+1}}{2} \mid 1 \leqslant i \leqslant n-1\right\}
Ta={2ai+ai+1∣1⩽i⩽n−1}
则可以对划分点的选取得到如下的更改
Gain
(
D
,
a
)
=
max
t
∈
T
a
Gain
(
D
,
a
,
t
)
=
max
t
∈
T
a
Ent
(
D
)
−
∑
−
r
∣
D
t
λ
∣
∣
D
∣
Ent
(
D
t
λ
)
,
\begin{aligned} \operatorname{Gain}(D, a) &=\max _{t \in T_{a}} \operatorname{Gain}(D, a, t) \\ &=\max _{t \in T_{a}} \operatorname{Ent}(D)-\sum_{-r} \frac{\left|D_{t}^{\lambda}\right|}{|D|} \operatorname{Ent}\left(D_{t}^{\lambda}\right), \end{aligned}
Gain(D,a)=t∈TamaxGain(D,a,t)=t∈TamaxEnt(D)−−r∑∣D∣∣
∣Dtλ∣
∣Ent(Dtλ),
其中
t
t
t表示的是划分点
缺失值处理
对
n
n
n属性当中挑选出来的一个属性,对其所包含的数据当中,没有缺失值的数据提取出来计算其信息熵以及对应的信息增益
ρ
=
∑
x
∈
D
~
w
x
∑
x
∈
D
w
x
,
p
~
k
=
∑
x
∈
D
~
k
w
x
∑
x
∈
D
~
w
x
(
1
⩽
k
⩽
∣
Y
∣
)
r
~
v
=
∑
x
∈
D
~
v
w
x
∑
x
∈
D
~
w
x
(
1
⩽
v
⩽
V
)
.
\begin{aligned} \rho &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D} w_{\boldsymbol{x}}}, \\ \tilde{p}_{k} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}_{k}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant k \leqslant|\mathcal{Y}|) \\ \tilde{r}_{v} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}^{v}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant v \leqslant V) . \end{aligned}
ρp~kr~v=∑x∈Dwx∑x∈D~wx,=∑x∈D~wx∑x∈D~kwx(1⩽k⩽∣Y∣)=∑x∈D~wx∑x∈D~vwx(1⩽v⩽V).
对信息增益的计算式进行推广
Gain
(
D
,
a
)
=
ρ
×
Gain
(
D
~
,
a
)
=
ρ
×
(
Ent
(
D
~
)
−
∑
v
=
1
V
r
~
v
Ent
(
D
~
v
)
)
\begin{aligned} \operatorname{Gain}(D, a) &=\rho \times \operatorname{Gain}(\tilde{D}, a) \\ &=\rho \times\left(\operatorname{Ent}(\tilde{D})-\sum_{v=1}^{V} \tilde{r}_{v} \operatorname{Ent}\left(\tilde{D}^{v}\right)\right) \end{aligned}
Gain(D,a)=ρ×Gain(D~,a)=ρ×(Ent(D~)−v=1∑Vr~vEnt(D~v))
多变量决策树
多变量决策树的作用在于把每个属性视为空间当中的一个坐标轴,然后对样本分类则是找到不同类样本之间的的分类边界,决策树所形成的分类边界的特点在于:轴平行
轴平行的好处就在于提高了模型的可解释性
多变量决策树在学习过程当中是尝试建立一个合适的线性分类器
总结
在本次课程当中我们学习并了解到了机器学习的决策树,让我们继续努力