机器学习公式推导及原理—决策树
根据西瓜书中的公式与内容来进行推导和实现
算法原理
从逻辑角度,一堆if else语句的组合从几何角度,根据某种准则划分特征空间。最终目的:将样本越分越“纯。
信息熵的概念
自信息:是指随机变量所含的信息。
其中x指的是随机变量,每一个随机变量都会对应一个概率值。当b = 2时单位为bit,当b = e时单位为nat。
信息熵:信息熵(自信息的期望):度量随机变量X的不确定性,信息熵越大越不确定
计算信息熵时约定:若p(x)=0,则p(x)logb p(x)=0。当X的某个取值的概率为1
时信息熵最小、(最确定),其值为0;当X的各个取值的概率均等时信息熵最大(最不确
定),其值为logb「X|,其中|X|表示X可能取值的个数。
将样本类别标记y视作随机变量,各个类别在样本集合D中的占比pk(k=1,2,.,|y|)
视作各个类别取值的概率,则样本集合D(随机变量y)的信息熵(底数b取2)为
此时信息熵所代表的不确定性可以转化理解为集合内样本的纯度
条件熵的概念
条件熵(Y的信息熵关于概率分布X的期望):在已知X后Y的不确定性
从单个属性(特征)α的角度来看,假设其可能取值为{α2,α2,…,αv},D表示属性a取值为α∈{α,α2,…,αv}的样本集合,|Dv|/D表示占比,那么在已知属性α的取值后,样本集合D的条件熵为:
ID3决策树
在提出ID3决策树之前首先要引入信息增益的概念:
信息增益:在已知属性(特征)a的取值后y的不确定性减少的量,也即纯度的提升
ID3决策树:就是以信息增益为准则来划分属性的决策树
C4.5决策树
信息增益准则对可能取值数目较多的属性有所偏好(例如“编号"这个较为极端的例子,不过其本质原因不是取值数目过多,而是每个取值里面所包含的样本量太少),为减少这种偏好可能带来的不利影响,C4.5决策树选择使用"增益率"代替“信息增益”,增益率定义:
其中:
称为属性α的“固有值",α的可能取值个数V越大,通常其固有值IV(α)也越大。但是增益率对可能取值数自较少的属性有所偏好(缺点)。
本质上是对信息增益通过一项来进行平衡但还是通过信息熵来进行衡量
因此,C4.5决策树并未完全使用"增益率"代替“信息增益",而是采用一种启发式的方法:先选出信息增益高于平均水平的属性,然后再从中选择增益率最高的。
CART决策树
之前的决策树的生成本质上都是用信息熵作为衡量的标准,而CART决策树是采用另一种方式。
基尼值与基尼指数
基尼值:从样本集合D中随机抽取两个样本,其类别标记不一致的概率。因此,基尼值越小,碰到异类的概率就越小,纯度自然就越高。
属性a的基尼指数(类比信息熵和条件熵):
CART决策树:选择基尼系数最小的属性作为最优划分属性
实际构造算法
- 首先,对每个属性α的每个可能取值,将数据集D分为α = v和α ≠v两部分来计算基尼指数,即
使得使用该算法构造出来的树本质上是一棵二叉树
- 然后,选择基尼指数最小的属性及其对应取值作为最优划分属性和最优划分点;
- 最后,重复以上两步,直至满足停止条件。
最终完成CART决策树的构造。