决策树(Decision Tree)
引言
决策树是机器学习中一种经典的分类与回归算法。决策树模型呈树形结构,在分类问题中,可以认为是if-then
规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。决策树学习通常包括3个步骤:特征选择、决策树生成、决策树剪枝。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”策略。
决策树的生成是一个递归的过程,在决策树基本算法中,有三种情形会导致递归的返回:(1)当前结点包含的样本全部属于同一类别,无需划分;(2)当前属性集为空,或是所有样本在属性上取值相同,无法划分;(3)当前结点包含的样本集合为空,不能划分。
原理
基本概念
决策树将特征空间划分为互不相交的单元,在每个单元定义一个类的概率分布,构成一个条件概率分布。
- 决策树的每一条路径对应于划分中的一个基本单元。
- 设某个单元 S \mathbb{S} S内部有 N S {N_S} NS个样本点,则可以定义一个条件概率分布 p ( y ∣ x ) , x ∈ S p(y|x),x\in \mathbb{S} p(y∣x),x∈S,则单元的类别可以表示为 a r g m a x y p ( y ∣ x ) , x ∈ s arg{max}_yp(y|x),x\in \mathbb{s} argmaxyp(y∣x),x∈s
信息增益
在信息论和概率统计中,熵(Entropy)表示随机变量不确定的度量。设X
是一个取有限个值的离散随机变量,其概率分布为:
P X = x i = p i , i = 1 , 2... , n P{X=x_i}=p_i,i=1,2...,n PX=xi=pi,i=1,2...,n
则随机变量的熵定义为:
H ( X ) = − ∑ i = 1 n p i log p i H(X)=-\sum_{i=1}^n p_i \log p_i H(X)=−i=1∑npilogpi
若 p i = 0 p_i = 0 pi=0,则定义 0 log 0 = 0 0\log 0 =0 0log0=0。通常,式中的对数以2为底或以自然数e为底。由定义可知,熵只依赖于x的分布,与x的取值无关,所以可以将x的熵记作:H(p)
H ( p ) = − ∑ i = 1 n p i log p i H(p) = - \sum_{i=1}^n p_i \log p_i H(p)=−i=1∑npilogpi
熵越大,随机变量的不确定性就越大。
当随机变量只取0、1两个值的时候,分布就变成
P ( x = 1 ) = p , P ( X = 0 ) = 1 − p , 0 ≤ p ≤ 1 P(x=1)=p,P(X=0)=1-p,0\leq p \leq 1 P(x=1)=p,P(X=0)=1−p,0≤p≤1
熵就变为:
H ( p ) = − p log p − ( 1 − p ) l o g ( 1 − p ) H(p) = -p\log p -(1-p)log(1-p) H(p)=−plogp−(1−p)log(1−p)
这个时候和二分类的损失函数就类似了,此时如果p为1或者0,即可以确定类别为正类/负类时,熵最小,p为0.5,即正类负类置信度相同时,熵最大
信息增益表示得知特征x的信息而使得类y的信息的不确定性减少的程度。
特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)
一般地,熵 H ( Y ) H(Y) H(Y)与条件熵之差 H ( Y ∣ X ) H(Y|X) H(Y∣X)称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
信息增益依赖于特征,不同的特征往往具有不同的信息增益,信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选取方法是:对训练数据集D,计算其每个特征的信息增益,并比较大小,选择信息增益最大的特征**
信息增益比
信息增益的大小是相对于数据集而言的,并没有绝对意义。在训练数据集的经验熵大的时候,信息增益值会偏大,反之则会偏小。使用信息增益比可以进行校正。
信息增益比定义为:
g R ( D , A ) = g ( D , A