试论贝叶斯分类、决策树分类分类挖掘算法的优势与劣势,以及解决维度效应的策略

来源:互联网 发布:adobe indesign mac 编辑:程序博客网 时间:2024/05/16 13:57

0 引言

数据分类 是指按照分析对象的属性、特征,建立不同的组类来描述事物。数据分类 是数据挖掘的主要内容之一,主要是通过分析训练数据样本,产生关于类别的精确描述。这种类别通常由分类 规则组成,可以用来对未来的数据进行分类 和预测。分类 技术解决问题的关键是构造分类 器 。 一.数据分类 数据分类 一般是两个步骤的过程: 第1步:建立一个模型,描述给定的数据类集或概念集(简称训练集)。通过分析由属性描述的数据库元组来构造模型。每个元组属于一个预定义的类,由类标号属性确定。用于建立模型的元组集称为训练数据集,其中每个元组称为训练样本。由于给出了类标号属性,因此该步骤又称为有指导的学习。如果训练样本的类标号是未知的,则称为无指导的学习(聚类)。学习模型可用分类 规则、决策 树 和数学公式的形式给出。 第2步:使用模型对数据进行分类 。包括评估模型的分类 准确性以及对类标号未知的元组按模型进行分类 。 常用的分类 规则挖掘方法 分类 规则挖掘有着广泛的应用前景。对于分类 规则的挖掘通常有以下几种方法,不同的方法适用于不同特点的数据: 1.贝叶斯方法 2.决策树方法 3.人工神经网络方法 4.约略集方法 5.遗传算法分类 方法的评估标准: 准确率:模型正确预测新数据类标号的能力。速度:产生和使用模型花费的时间。健壮性:有噪声数据或空缺值数据时模型正确分类 或预测的能力。伸缩性:对于给定的大量数据,有效地构造模型的能力。可解释性:学习模型提供的理解和观察的层次。 影响一个分类 器 错误率的因素 (1) 训练集的记录数量。生成器 要利用训练集进行学习,因而训练集越大,分类 器 也就越可靠。然而,训练集越大,生成器 构造分类 器 的时间也就越长。错误率改善情况随训练集规模的增大而降低。 (2) 属性的数目。更多的属性数目对于生成器 而言意味着要计算更多的组合,使得生成器 难度增大,需要的时间也更长。有时随机的关系会将生成器 引入歧途,结果可能构造出不够准确的分类 器 (这在技术上被称为过分拟合)。因此,如果我们通过常识可以确认某个属性与目标无关,则将它从训练集中移走。 (3) 属性中的信息。有时生成器 不能从属性中获取足够的信息来正确、低错误率地预测标签(如试图根据某人眼睛的颜色来决定他的收入)。加入其他的属性(如职业、每周工作小时数和年龄),可以降低错误率。 (4) 待预测记录的分布。如果待预测记录来自不同于训练集中记录的分布,那么错误率有可能很高。比如如果你从包含家用轿车数据的训练集中构造出分类 器 ,那么试图用它来对包含许多运动用车辆的记录进行分类 可能没多大用途,因为数据属性值的分布可能是有很大差别的。 评估方法 有两种方法可以用于对分类 器 的错误率进行评估,它们都假定待预测记录和训练集取自同样的样本分布。 (1) 保留方法(Holdout):记录集中的一部分(通常是2/3)作为训练集,保留剩余的部分用作测试集。生成器 使用2/3 的数据来构造分类 器 ,然后使用这个分类 器 来对测试集进行分类 ,得出的错误率就是评估错误率。虽然这种方法速度快,但由于仅使用2/3 的数据来构造分类 器 ,因此它没有充分利用所有的数据来进行学习。如果使用所有的数据,那么可能构造出更精确的分类 器 。 (2) 交叉纠错方法(Cross validation):数据集被分成k 个没有交叉数据的子集,所有子集的大小大致相同。生成器 训练和测试共k 次;每一次,生成器 使用去除一个子集的剩余数据作为训练集,然后在被去除的子集上进行测试。把所有得到的错误率的平均值作为评估错误率。交叉纠错法可以被重复多次(t),对于一个t 次k 分的交叉纠错法,k *t 个分类 器 被构造并被评估,这意味着交叉纠错法的时间是分类 器 构造时间的k *t 倍。增加重复的次数意味着运行时间的增长和错误率评估的改善。我们可以对k 的值进行调整,将它减少到3 或5,这样可以缩短运行时间。然而,减小训练集有可能使评估产生更大的偏差。通常Holdout 评估方法被用在最初试验性的场合,或者多于5000 条记录的数据集;交叉纠错法被用于建立最终的分类 器 ,或者很小的数据集。 二.贝叶斯分类 贝叶斯分类 方法是一种具有最小错误率的概率分类 方法,可以用数学公式的精确方法表示出来,并且可以用很多种概率理论来解决。 设(Ω,Θ,P)为概率空间,Ai∈Θ(i=1,2,...,n)为Ω的一个有穷剖分,且P(Ai)>0 (i=1,2,...,n),则对任意B∈Θ且P(B)>0,有 P(Ai|B)= (i=1,2,...,n) 上式称为贝叶斯公式。贝叶斯定理为我们提供了一个计算假设h的后验概率的方法 P(h|D)= 分类 有规则分类 和非规则分类 ,贝叶斯分类 是非规则分类 ,它通过训练集训练而归纳出分类 器 ,并利用分类 器 对没有分类 的数据进行分类 。 贝叶斯分类 的特点贝叶斯分类 具有如下特点: (1) 贝叶斯分类 并不把一个对象绝对地指派给某一类,而是通过计算得出属于某一类的概率,具有最大概率的类便是该对象所属的类; (2) 一般情况下在贝叶斯分类 中所有的属性都潜在地起作用,即并不是一个或几个属性决定分类 ,而是所有的属性都参与分类 ; (3) 贝叶斯分类 对象的属性可以是离散的、连续的,也可以是混合的。 贝叶斯定理给出了最小化误差的最优解决方法,可用于分类 和预测。理论上,它看起来很完美,但在实际中,它并不能直接利用,它需要知道证据的确切分布概率,而实际上我们并不能确切的给出证据的分布概率。因此我们在很多分类 方法中都会作出某种假设以逼近贝叶斯定理的要求。 三.决策 树 分类 决策 树 (Decision Tree)又称为判定树 ,是运用于分类 的一种树 结构。其中的每个内部结点(internal node)代表对某个属性的一次测试,每条边代表一个测试结果,叶结点(leaf)代表某个类(class)或者类的分布(class distribution),最上面的结点是根结点。决策 树 分为分类 树 和回归树 两种,分类 树 对离散变量做决策 树 ,回归树 对连续变量做决策 树 。 构造决策 树 是采用自上而下的递归构造方法。决策 树 构造的结果是一棵二叉或多叉树 ,它的输入是一组带有类别标记的训练数据。二叉树 的内部结点(非叶结点)一般表示为一个逻辑判断,如形式为(a = b)的逻辑判断,其中a 是属性,b是该属性的某个属性值;树 的边是逻辑判断的分支结果。多叉树 (ID3)的内部结点是属性,边是该属性的所有取值,有几个属性值,就有几条边。树 的叶结点都是类别标记。 使用决策 树 进行分类 分为两步: 第1步:利用训练集建立并精化一棵决策 树 ,建立决策 树 模型。这个过程实际上是一个从数据中获取知识,进行机器学习的过程。 第2步:利用生成完毕的决策 树 对输入数据进行分类 。对输入的记录,从根结点依次测试记录的属性值,直到到达某个叶结点,从而找到该记录所在的类。 问题的关键是建立一棵决策 树 。这个过程通常分为两个阶段: (1) 建树(Tree Building):决策 树 建树算法见下,可以看得出,这是一个递归的过程,最终将得到一棵树 。 (2) 剪枝(Tree Pruning):剪枝是目的是降低由于训练集存在噪声而产生的起伏。 决策 树 方法的评价。 优点 与其他分类 算法相比决策 树 有如下优点: (1) 速度快:计算量相对较小,且容易转化成分类 规则。只要沿着树 根向下一直走到叶,沿途的分裂条件就能够唯一确定一条分类 的谓词。 (2) 准确性高:挖掘出的分类 规则准确性高,便于理解,决策 树 可以清晰的显示哪些字段比较重要。 缺点 一般决策 树 的劣势: (1) 缺乏伸缩性:由于进行深度优先搜索,所以算法受内存大小限制,难于处理大训练集。一个例子:在Irvine机器学习知识库中,最大可以允许的数据集仅仅为 700KB,2000条记录。而现代的数据仓库动辄存储几个G-Bytes的海量数据。用以前的方法是显然不行的。 (2) 为了处理大数据集或连续量的种种改进算法(离散化、取样)不仅增加了分类 算法的额外开销,而且降低了分类 的准确性,对连续性的字段比较难预测,当类别太多时,错误可能就会增加的比较快,对有时间顺序的数据,需要很多预处理的工作。 但是,所用的基于分类 挖掘的决策 树 算法没有考虑噪声问题,生成的决策 树 很完美,这只不过是理论上的,在实际应用过程中,大量的现实世界中的数据都不是以的意愿来定的,可能某些字段上缺值(missing values);可能数据不准确含有噪声或者是错误的;可能是缺少必须的数据造成了数据的不完整。 另外决策 树 技术本身也存在一些不足的地方,例如当类别很多的时候,它的错误就可能出现甚至很多。而且它对连续性的字段比较难作出准确的预测。而且一般算法在分类 的时候,只是根据一个属性来分类 的。 在有噪声的情况下,完全拟合将导致过分拟合(overfitting),即对训练数据的完全拟合反而不具有很好的预测性能。剪枝是一种克服噪声的技术,同时它也能使树 得到简化而变得更容易理解。另外,决策 树 技术也可能产生子树 复制和碎片问题。