决策树是一个比较经典的分类与回归的方法,包括特征选择、决策树的生成和决策树的修剪。
模型
决策树的模型是一棵已经构造完成的决策树,由节点和有向边组成,其中节点分为内部节点和叶子节点,内部节点表示一个特征或属性,即划分的特征,叶子节点表示一个类。
从根节点开始对实例中的某一个特征进行测试,比如西瓜的颜色,有花纹的分成一个类,放在一个子节点中,另一种放在另一个子节点中,如此递归的对实例进行测试,直至叶节点。
决策规则
决策树可以看成if-then规则的集合,决策过程:每一条有向边对应一条规则,路径上内部节点的特征对应着规则的条件,而叶节点的类对应着规则的结论。
路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。
从所有可能的决策树中选取最优的决策树是NP完全问题,所以现实中决策树学习算法采用启发式方法,近似求解这一优化问题,这样得到的决策树是次最优的。决策树算法通常是一个递归选择最优特征,并且用该特征对数据进行分割。
算法
特征选择
随机变量X的熵定义为:
$$
H(X)=-\sum_{i=1}^{n}p_i\log p_i
$$
条件熵(conditional entropy)\(H(Y|X)\),定义为:
$$
H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i)
$$
信息增益表示得知特征X的信息而使得Y的信息的不确定性减少的程度,不确定性由熵表示。根据信息熵的特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
这样对于数据集D,经验熵H(D)
$$
H(D)=-\sum_{i=1}^{k}\frac{|C_k|}{|D|}\log \frac{|C_k|}{|D|}
$$
经验条件熵\(H(D|A)\)
$$
H(D|A)=\sum_{i=1}^{N}\frac{|D_i|}{|D|}H(D_i)
$$
信息增益
$$
g(D,A)=H(D)-H(D|A)
$$
决策树的生成
ID3算法
选择信息增益最大的特征,直到所有特征的信息增益很小或者没有特征可以选择为止。
C4.5算法
ID3的改进算法,选择信息增益比(\(g_R(D,A)\))最大的特征
$$
g_R(D,A)=\frac{g(D,A)}{H_A(D)}\\
其中 H_A(D)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\log_2\frac{|D_i|}{|D|}
$$
剪枝
剪枝就是当\(\alpha\)确定时,选择损失函数最小的模型。损失函数定义为:
$$
C_{\alpha}(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}\log\frac{N_{tk}}{N_t}+\alpha|T|\\
其中N_{tk}表示在N_t个样本点中,k类样本点有N_{tk}个。
$$