机器学习基础——决策树

642

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. 基本概念

1.1 信息熵(Information Entropy)

以下概念引用自维基百科-熵(信息论)信息论中,(英语:entropy)是接收的每条消息中包含的信息的平均量,又被称为信息熵信源熵平均自信息量。这里,“消息”代表来自分布或数据流中的事件、样本或特征。熵的单位通常为比特,但也用Sh、nat、Hart计量,取决于定义用到对数的底。 在一个概率分布中,一个事件的熵被定义为它的概率的对数的相反数:log(p(x))-log(p(x)),因为熵需要满足以下三个条件:

  • 单调性:发生概率越高的事件,其所携带的信息熵越低。
  • 非负性:即信息熵不能为负
  • 累加性:多随机事件同时发生存在的总不确定性的量度表示为各事件不确定性的量度的和

熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。 在信息论与概率统计中,熵(entropy)表示随机变量不确定性的量度。 事件的概率分布和每个事件的信息量构成了一个随机变量,这个随机变量的均值(即期望)就是这个分布产生的信息量的平均值(即信息熵)。

XX是一个取有限个值的离散随机变量,其概率分布为:

P(X=xi)=pi,i=1,2,,n(1-1)P(X=x_i)=p_i,i=1,2,\cdots,n \tag{1-1}

则随机变量XX信息熵定义为:

H(X)=i=1npi logpi(1-2)H(X)=-\sum_{i=1}^{n}p_i\ logp_i \tag{1-2}

条件熵(empirical entropy)H(YX)H(Y|X)表示在已知随机变量XX的条件下随机变量YY的不确定性,定义为XX给定的条件下随机变量YY的条件概率分布的熵对XX的数学期望:

H(YX)=i=1npiH(YX=xi)(1-3)H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i) \tag{1-3}

其中pi=P(X=xi)p_i=P(X=x_i) 总结:信息熵的通俗含义是:随机变量各种结果的比特量的数学期望。信息熵越大,包含的信息越多,信息越混乱,信息的纯度越低,不纯度越高。

1.2. 基尼指数(Gini Index)

基尼指数可以用来表示数据集中一个随机选中的样本被分错的可能性,它等于该样本被选中的概率乘以它被分错的概率。基尼指数也可以理解为,在一个包含K类样本的数据集中,随机取出两个样本,它们的类别不一致的概率(前提是数据集足够大)。一个随机变量的概率分布的基尼指数被定义为该随机变量各个取值的基尼指数的期望:

Gini(p)=k=1k=Kpk(1pk)=1k=1k=Kpk2(1-4)\begin{aligned} Gini(p)&=\sum_{k=1}^{k=K}p_k(1-p_k)\\ &=1-\sum_{k=1}^{k=K}{p_k}^2\\ \tag{1-4} \end{aligned}

1.3. 信息增益

记当前样本集D的信息熵为Ent(D)Ent(D),假定离散属性a有V个可能的取值{a1,a2,,aV}\{a^1,a^2,\cdots,a^V\},则可以得到V个分支节点,其中第v个分支节点中包含了D中所有在属性a上取值为ava^v的样本,记为DvD^v。信息增益(Information gain)定义为:

Gain(D,a)=Ent(D)v=1VDvDEnt(Dv)(1-5)Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) \tag{1-5}

通俗的理解,信息增益为数据集分裂前的信息熵,减去分裂后的各个分支节点的信息熵的加权求和,其中权重为各个分支节点的样本占总样本的比例。 如果采用基尼指数来衡量信息量,则数据集对属性a分裂后的基尼指数为:

Gini_index(D,a)=v=1VDvDGini(Dv)(1-6)Gini\_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v) \tag{1-6}

2. 决策树

2.1. 基本流程

2.2.1. 分支节点划分原则:纯度原则

一般而言,我们希望随着划分过程的不断进行,分支节点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越高越好。与纯度相对的是不纯度,不纯度可以用信息熵、基尼指数和信息增益率等量度来表示,分别对应ID3,Cart和C4.5决策树。

2.2.2. 构建决策树

2.2.3. 剪枝

2.2.4. 优缺点分析

优点:

  • 计算简单,易理解,可解释性强
  • 适合处理缺失属性的样本,对样本的类别要求不高(可以是数值,布尔,文本等混合样本)
  • 能处理不相干特征

缺点:

  • 容易过拟合
  • 忽略了数据之间的相关性
  • 不支持在线学习,对新样本,决策树需要全部重建

3. CART算法

分类与回归树(classification and regression tree,CART),是一种应用广泛的决策树学习方法,包含特征选择、树的生产和剪枝,既可以用于分类也可以用于回归。

CART假设决策树是二叉树,左分支取值为“是”,右分支取值为“否”。这样的决策树等价于递归地二分每个特征,将输入空间(特征空间)划分为有限个单元,并在这些单元上确定预测的概率分布,也即能够在给定输入随机变量XX的条件下,输出随机变量YY的条件概率分布。

  1. 决策树生成:基于训练数据集生成决策树,生成的决策树尽量大
  2. 决策树剪枝,用验证数据集对已生成的树进行剪枝并选择最优子树,剪枝的标准是损失函数最小。

3.1. CART决策树生成

回归树:平方误差最小 分类树:基尼指数最小

3.1.1. 回归树的生成

假设XX,YY分别代表输入和输出变量,其中YY是连续变量。给定训练数据集

D={(x1,y1),(x2,y2),,(xN,yN)}(3-1)D=\left\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\right\} \tag{3-1}

一个回归树对应着输入空间(特征空间)的一个划分,以及在划分的单元上的输出值。假设输入空间划分为MM个单元R1,R2,,RMR_1,R2,\cdots,R_M,并且在每个单元RmR_m上有一个固定的输出值cmc_m,则回归树模型可以表述为:

f(x)=m=1(M)cmI(xRm)(3-2)f(x)=\sum_{m=1}^(M)c_mI(x\in R_m) \tag{3-2}

4. 随机森林

bagging是boostrap aggregation的简称