决策树是一种基本的分类与回归方法。
决策树模型
定义:分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点表示一个特征或属性,叶节点表示一个类。
用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点,这时。每一个子结点对应该特征的一个取值,如此递归的对实例进行测试并分配。直至达到叶节点,最后将实例分到叶节点的类中。
决策树与if-then规则
将决策树转化为if-then规则的过程如下:由决策树的根节点到叶节点的每一条路径构建一个规则;路径上内部节点的特征对应规则的条件,叶节点的类对应规则的结论。决策树的路径或其对应的if-then规则有一个重要的性质:互斥并完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只有一条路径或一条规则所覆盖。
决策树与条件概率分布
决策树还表示给定特征条件下类的条件概率分布,这一条件概率分布定义在特征空间的一个划分上,将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。假设X表示特征的随机变量,Y表示类的随机变量,那么这个条件概率分布可以表示为P(Y|X)。X取值与给定划分下单元的集合,Y取值与类的集合。各叶节点(单元)上的条件概率往往偏向某一个类,即属于某一类的概率较大,决策树分类时将该点的实例强行分到条件概率大的哪一类去。
决策树学习
旨在构建一个与训练数据拟合很好并且复杂度小的决策树,
决策树学习的目标是根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。
本质是从训练数据集中归纳出一组分类规则。
学习策略是以损失函数为目标函数的最小化。
学习算法:通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个数据集有一个最好的分类的过程。
决策树的生成是使每个子集都被分到叶节点,既都有了明确的类。这样的决策树可能地训练数据有很好的分类能力,但对未知的测试数据未必有很好的分类能力,即可能发生过拟合现象。需要对已经生成的决策树自下向上进行剪枝,将树变得更加简单,具有更好的泛化能力。
所以,决策树学习算法包含特征选择,决策树的生成与决策树的剪枝。决策树的生成对应于模型的布局选择,只考虑局部最优。剪枝对应模型的全局选择,考虑全局最优。
特征选择
特征选择的准则是信息增益或信息增益比。
信息增益
熵表示随机变量不确定性的度量。单位是比特或纳特。熵越大,随机变量的不确定性就越大。
条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。
经验熵H(D)表示对数据集D进行分类的不确定性
经验条件熵H(D|A)表示在特征A给定的条件下对数据集进行分类的不确定性。
信息增益表示得知特征X的信息而使得类Y的信息的不确定减少的程度。依赖于特征。信息增益大的特征具有更强的分类能力。
信息增益定义:特征A对训练数据集D的信息增益g(D,A)定义为集合D的经验熵与特征A给定条件下D的经验条件熵H(Y|X)之差。即g(D,A)=H(D)-H(D|A)
互信息:熵H(Y)与条件熵H(Y|X)之差。
根据信息增益准则的特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较他们的大小,选择信息增益最大的特征。
信息增益比
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,信息增益比可以对这进行矫正。
定义;信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比.
决策树的生成
ID3算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。具体方法是:从根节点开始,对结点计算所有可能的特征的信息增益。选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一颗决策树。
C4.5算法
C4.5算法和ID3的算法相似,C4.5算法在生成的过程中,用信息增益比来选择特征。
决策树的剪枝
在决策树学习中将已生成的数进行简化的过程称为剪枝。具体地,剪枝从已生成的树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶节点,从而简化分类树模型。
实现方法:通过极小化决策树整体的损失函数或代价函数来实现。
决策树生成只考虑了通过提高信息增益对训练数据进行更好的拟合,而决策树剪枝通过优化损失函数还考虑了减小模型复杂度,
树的剪枝算法
输入:生成算法产生的整个树T,参数a
输出:修剪后的子树Ta,
(1)计算每个结点的经验熵
(2)递归地从树的叶节点向上回缩。
设一组叶节点回缩到其父节点之前与之后的整体树分别为TB,TA,其对应的损失函数值分别是,Ca(TB)与Ca(TA),如果Ca(TA)<=Ca(TB)则进行剪枝,即将父节点变为新的叶节点。
(3)返回步骤(2),直至不能继续为止,得到损失函数最小的子树Ta,
CART算法
CART看用于分类和回归,
CART算法步骤
1、决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大
2、决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。
CART生成
决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则,进行特征选择,生成二叉树。