一:信息论基础
1.熵
熵是用来衡量一个系统混论程度的物理量,代表一个系统中蕴含多少信息量,信息量越大表明一个系统不确定性就越大,就存在越多的可能性。
熵(entropy)就用来衡量整个系统的总体信息量,其计算公式如下
2.联合熵
将一维随机变量分布推广到多维随机变量分布,则其联合熵 :
3.条件熵
条件熵 H(Y|X)H(Y|X) 表示在已知随机变量 XX 的条件下随机变量 YY 的不确定性。条件熵 H(Y|X)H(Y|X) 定义为 XX 给定条件下 YY 的条件概率分布的熵对 XX 的数学期望:
4 信息增益
信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的),公式如下:
5.基尼不纯度
从一个数据集中随机选取子项,度量其被错误的划分到其他组里的概率。即一个随机事件变成它的对立事件的概率。公式如下:(fi为某概率事件发生的概率)
二:决策树的不同分类算法
- ID3算法:
ID3算法的核心思想即在决策树的各个节点上使用信息增益选择特征。从根节点开始,计算所有特征的信息增益,选择信息增益最大的特征作为节点特征,再根据该特征的取值建立子节点,对子节点递归调用上述过程。即:
输入:训练数据集D,特征A,阈值beta :
输出:决策树T
(1)若D中所有实例属于同一类Ck则T为单节点树,并将Ck作为该节点的类标记,返回T
(2)若A为空集,则通过统计D中实例数最大的类作为该节点类标记(即对于某一节点而言,没有其它特征可以进行分辨了,则对将该节点的类设置为分到该节点数据最多属于的类中),返回T
(3)否则计算A中各特征对D的信息增益,选择信息增益最大的特征 Ag :
信息增益:
(4)若Ag的信息增益小于阈值,则将T作为单节点树,将D中实例数最大的类作为该节点的标记
(5)否则,对Ag每一个可能值 ai 将D划分为若干非空子集,将子集中实例数最大的类作为标记,构建子节点,返回树T
(6)对第i个子节点,以(5)中的子集作为训练集,A-Ag
作为特征集,递归调用(1)~(5),构建决策树。
上述就是ID3算法的核心步骤,即用信息增益来选择分类特征。但是以信息增益作为划分的标准会带来一个问题,观察公式我们可以看出,由于对于数据集而言经验熵是给定的,我们想要获得大的信息增益就要使条件熵较小,当我们的特征有较多取值时条件熵就会相应较小,因此我们的算法会倾向于选择取值较多的特征值。为了解决这个问题,就有了C4.5算法。
- C4.5算法:
信息增益比:
信息增益与训练数据集D关于特征A的值的熵之比:
其中:
C4.5算法即是将ID3算法中选择特征的标准用信息增益比代替。 - cart分类决策树
CART使用gini系数来衡量数据集的划分效果而不是香农熵:
CART的剪枝
分析分类回归树的递归建树过程,不难发现它实质上存在着一个数据过度拟合问题。在决策树构造时,由于训练数据中的噪音或孤立点,许多分枝反映的是训练数据中的异常,使用这样的判定树对类别未知的数据进行分类,分类的准确性不高。因此试图检测和减去这样的分支,检测和减去这些分支的过程被称为树剪枝。树剪枝方法用于处理过分适应数据问题。通常,这种方法使用统计度量,减去最不可靠的分支,这将导致较快的分类,提高树独立于训练数据正确分类的能力。决策树常用的剪枝常用的简直方法有两种:预剪枝(Pre-Pruning)和后剪枝(Post-Pruning)。预剪枝是根据一些原则及早的停止树增长,如树的深度达到用户所要的深度、节点中样本个数少于用户指定个数、不纯度指标下降的最大幅度小于用户指定的幅度等;后剪枝则是通过在完全生长的树上剪去分枝实现的,通过删除节点的分支来剪去树节点,可以使用的后剪枝方法有多种,比如:代价复杂性剪枝、最小误差剪枝、悲观误差剪枝等等。
三:回归树原理
回归树中,采用的是启发式的方法。假如我们有n个特征,每个特征有si(i∈(1,n))si(i∈(1,n))个取值,那我们遍历所有特征,尝试该特征所有取值,对空间进行划分,直到取到特征j的取值s,使得损失函数最小,这样就得到了一个划分点。描述该过程的公式如下:
假设将输入空间划分为M个单元:R1,R2,…,RmR1,R2,…,Rm 那么每个区域的输出值就是:cm=ave(yi|xi∈Rm)cm=ave(yi|xi∈Rm)也就是该区域内所有点y值的平均数。
算法描述:
四:决策树防止过拟合手段
(1)先剪枝(prepruning):通过提前停止树的构建而对树“剪枝”,一旦停止,节点就成为树叶。该树叶可以持有子集元组中最频繁的类;
(2)后剪枝(postpruning):它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。所谓大多数原则,是指剪枝过程中, 将一些子树删除而用叶节点代替,这个叶节点所标识的类别用这棵子树中大多数训练样本所属的类别来标识,所标识的类称为majority class .相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中精确地估计何时停止树增长很困难。