第四章 分类:基本概念,决策树与评估模型
预备知识:
(1)概括
分类任务的输入数据是集合。
每条记录也称为实例或样例,用元组(x,y)表示,其中x是属性的集合,而y是一个特殊属性,指出样例的类标号(也称为分类属性或目标属性)
分类与回归的区别:分类的类标号必须是离散属性,回归是一种预测建模任务,目标属性一定是连续属性。
(2)分类
定义:通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y。
目标函数又称为分类模型。分类模型的目的:
描述性建模:解释性工具,用于区分不同类的对象。
预测性建模:用于预测位置记录的类标号。
解决分类问题的一般方法:
需要一个训练集,它由类标号已知的记录组成。使用训练集建立分类模型,该模型随后用于检验集,检验集由类标号未知的记录组成。
分类模型的性能根据模型正确和错误预测的检验记录计数进行评估,这些计数存放在称作混淆矩阵中。
被分类模型正确预测的样本总数为f11+f00,错误预测的样本为f01+f10。
性能度量:
准确率:f11+f00/(f11+f00+f01+f10)
差错率:f01+f10/(f11+f00+f01+f10)
决策树基本知识:
决策树是一种由节点和有向边组成的层次结构。
树中包含是那种节点:
(1)根节点:没有入边,但有零条或多条出边。
(2)内部节点:恰有一条入边和两条或多条出边。
(3)根节点或终结点:恰有一条入边,没有出边。
非终结点(包含内部结点和根节点)包含属性测试条件,用以分开具有不同特性的记录。
建立决策树的Hunt算法:
通过训练记录相继划分成较纯的子集,以递归方式建立决策树。设Di是与节点t相关联的训练集,而y={y1,y2,…yc}是类标号,hunt算法的递归定义如下:
(1)如果Di中所有记录都属于同一个类yt,t是叶节点,用yt标记。
(2)如果Dt中包含属于多个类的记录,则选择一个属性测试条件,将记录划分成较小的子集。对于测试调价的每个输出,创建一个子女节点,并根据测试结果将Dt中的记录分不到子女节点中。然后,每个子女节点递归调用该算法。
表示属性测试条件的方法:
决策树算法必须为不同类型的属性提供表示属性测试条件和其对应输出的方法。
(1)二元属性:测试条件产生两个可能的输出。
(2)标称属性:由于标称属性有多个属性值,他的测试条件可以用两种方法表示
对于多路划分,其输出数取决于该属性不同属性值的个数。
对于决策树算法(如CART)只产生二元划分,即对属性值分组。
(3)序数属性:可以产生二元划分和多路划分,只要不违背序数属性值的有序性。
(4);连续属性:测试条件可以是二元输出的比较测试,也可以是输出的范围查询。
选择最佳划分的度量:
其中c是类的个数,并且在计算熵时0log20=0
二元属性的划分,标称属性的划分,连续属性的划分就是分别计算Gini,越小表明纯度越高。
决策树归纳的特点:
(1)是一种构件分类模型的非参数方法。即不要求任何先验假设,不家丁类和其他属性服从一定的概率分布。
(2)找到最佳的决策树是NP完全问题。许多决策树算法都采取启发式的方法指导对假设空间的搜索。
(3)已开发的决策树技术不需要昂贵的计算代价,即使训练集非常大,也可以快速建立模型。
(4)决策树相对容易解释,特别是小型的决策树。
(5)决策树是学习离散值函数的典型代表。
(6)决策树算法对于噪声的干扰具有相当好的鲁棒性,采用避免过分拟合的方法之后尤其如此。
(7)冗余属性不会对决策树的准确率造成不利的影响。
(8)由于大多数的决策树算法都采用自顶向下的递归划分方法,因此沿着树向下,记录会越来越少
(9)子树可能会在决策树中重发多次,这使得决策过程过于复杂,并且可能很难解释。
几个概念:
决策边界:两个不同类的相邻区域之间的边界。
斜决策树:允许测试条件设计多个属性。
构造归纳:提供另一种将数据划分为齐次非矩形区域的方法。
模型的过分拟合:
分类模型的误差大致分为两种:
(1)训练误差:也称为再代入误差,表现误差。是在训练记录上误分类样本比例。
(2)泛化误差:模型在位置记录上的期望误差。
当决策树很小时,训练和检验差错率都很大,这种情况称为模型拟合不足。
一旦树的规模变得太大,即使训练误差还在降低,但是检验误差开始增大,这种现象称为模型过分拟合。
模型完全拟合:节点数的不断增加导致训练误差为0,但是检验误差很大。
泛化误差估计:
1 使用再代入估计
再代入估计方法假设训练数据集可以很好的代表数据整体,因而可以使用训练误差(又称为再代入误差)提供对泛化误差的乐观估计。
训练误差通常是泛化误差的一种很差的估计。
2 综合模型复杂度
模型越是复杂,出现过分拟合的几率就越高。
Occam剃刀:给定两个具有相同泛化误差的模型,较简单的模型比较复杂的模型更可取。
悲观误差评估:第一种方法明确使用训练误差与模型复杂度罚项的和计算泛化误差。结果泛化误差可以看做模型的悲观误差估计。
最小描述长度原则:另一种结合模型复杂度的方法是基于称作最小描述长度原则的信息论方法。
3 估计统计上界
泛化误差也可以用训练误差的统计修正来估计。
因为泛化误差倾向于比训练误差更大,所以统计修正通常是计算训练误差的上界,考虑到达决策树一个特定叶节点的训练记录数。
4 使用确定集
不是训练集估计泛化误差,而是把原始的训练数据集分为两个较小的子集,一个子集用来训练,而另一个称作确定集,用于估计泛化误差。
典型做法就是保留三分之二的训练集来建立模型,剩余的三分之一用作误差估计。
处理决策树归纳中的过分拟合:
(1)先剪枝(提前终止规则):阈值确定比较复杂。
(2)后剪枝:初始决策树按照最大规模生长,然后进行剪枝的步骤,按照自底向上的方式修剪完全增长的决策树。
修剪方法有两种:
用新的叶节点替换子树,该叶节点的类标号由子树下记录中的多数类确定。
用子树中最常见的分支替代子树。
后剪枝技术倾向于产生更好的结果,但是当子树被剪掉后,生长完全决策树的额外的开销就被浪费了。
评估分类器性能:
1 保持方法
在保持方法中,将被标记的原始数据划分成两个不想交的集合,分别为训练集和检验集。
训练集上归纳分类模型,检验集上评估模型的性能。
训练集和检验集的划分比例通常根据分析家的判断(1:1或者2:1)。
分类器的准确率根据模型在检验集上的准确率估计。
缺点:
用于训练的被标记样本少,建立的迷行不如使用所有被标记样本建立的模型好。
模型可能高度依赖于训练集和检验集的构成。
2 随机二次抽样:可以重复保持方法来改进对分类器性能的估计。
3 交叉验证
(1)二折交叉验证:假设把数据集分成相同大小的两个子集,我们选择一个子集作为训练集,另一个作为检验集,然后交换两个集合的角色,原先作为训练集的现在做检验集,反之亦然。
(2)k折交叉验证:二折的推广,即分成k份
(3)留一:每个检验集只有一个记录。
优点:尽可能多的训练记录
缺点:性能估计度量的方差偏高
4 自助法
训练记录采用有放回抽样,即已经选作训练的记录将放回原来的记录中,使得他等可能的被重新抽取。
最常用的是**.632自助法**。
比较两个分类器的方法:
1 估计准确度的置信区间
通过将分类任务用二项式实验建模来推导置信区间。二项式实验的特征如下:
(1)实验由N个独立的试验组成,其中每个试验有两种可能的结果:成功或者失败。
(2)每个试验成功的概率p是常数。
2 比较两个模型的性能
3 比较两个分类法的性能