分类技术综述.docx
- 文档编号:26286371
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:17
- 大小:29.43KB
分类技术综述.docx
《分类技术综述.docx》由会员分享,可在线阅读,更多相关《分类技术综述.docx(17页珍藏版)》请在冰豆网上搜索。
分类技术综述
分类算法综述
(一)
摘要:
分类是数据挖掘、机器学习和模式识别中一个重要的研究领域。
通过对当前数据挖掘中具有代表性的优秀分类算法进行分析和比较,总结出了各种算法的特性,为使用者选择
算法或研究者改进算法提供了依据。
1概述
分类是一种重要的数据挖掘技术。
分类的目的是根据数据集的特点构造一个分类函数或分类模型(也常常称作分类器),该模型能把未知类别的样本映射到给定类别中的某一个。
分类和回归都可以用于预测。
和回归方法不同的是,分类的输出是离散的类别值,而回归的输出是连续或有序值。
本文只讨论分类。
构造模型的过程一般分为训练和测试两个阶段。
在构造模型之前,要求将数据集随机地分为训练数据集和测试数据集。
在训练阶段,使用训练数据集,通过分析由属性描述的数据库元组来构造模型,假定每个元组属于一个预定义的类,由一个称作类标号属性的属性来确定。
训练数据集中的单个元组也称作训练样本,一个具体样本的形式可为:
(u1,u2,un;C;其中ui表示属性值,c表示类
别。
由于提供了每个训练样本的类标号,该阶段也称为有指导的学习,通常,模型用分类规则、判定树或数学公式的形式提供。
在测试阶段,使用测试数据集来评估模型的分类准确率,如果认为模型的准确率可以接受,就可以用该模型对其它数据元组进行分类。
一般来说,测试阶段的代价远远低于训练阶段。
为了提高分类的准确性、有效性和可伸缩性,在进行分类之前,通常要对数据进行预处理,包括:
(1)数据清理。
其目的是消除或减少数据噪声,处理空缺值。
(2)相关性分析。
由于数据集中的许多属性可能与分类任务不相关,若包含这些属性将减慢和可能误导学习过程。
相关性分析的目的就是删除这些不相关或冗余的属性。
(3)数据变换。
数据可以概化到较高层概念。
比如,连续值属性“收入”的数值可以概化为离散值:
低,中,高。
又比如,标称值属性“市”可概化到高层概念“省”。
此外,数据也可以规范化,规范化将给定属性的值按比例缩放,落入较小的区间,比如[0,1]等。
2分类算法的种类及特性
分类模型的构造方法有决策树、统计方法、机器学习方法、神经网络方法等。
按大的方向分类主要有:
决策树,关联规则,贝叶斯,神经网络,规则学习,k—临近法,遗传算法,粗糙集以及模糊逻辑技术。
分类算法综述
(二)决策树算法
2.1决策树(decisiontree分类算法
决策树是以实例为基础的归纳学习算法。
它从一组无次序、无规则的元组中推理出决策树表示形式的分类规则。
它采用自顶向下的递归方式,在决策树的内部结点进行属性值的比较,并根据不同的属性值从该结点向下分支,叶结点是要学习划分的类。
从
根到叶结点的一条路径就对应着一条合取规则,整个决策树就对应着一组析取表达式规则。
1986年
Quinlan提出了著名的ID3算法。
在ID3算法的基础上,1993年Quinlan又提出
了C4.5算法。
为了适应处理大规模数据集的需要,后来又提出了若干改进的算法,其中SLIQ(super
visedlearninginquest并口SPRINT(scalableparallelizableinductionofdecisiontrees)是比较有代表性的两个算法。
(1)ID3算法
ID3算法的核心是:
在决策树各级结点上选择属性时,用信息增益
(informationgain)作为属性的选择标准,以使得在每一个非叶结点进行测试时,能获得关于被测试记录最大的类别信息。
其具体方法是:
检测所有的属性,选择信息增益最大的属性产生决策树结点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树结点的分支,直到所有子集仅包含同一类别的数据为止。
最后得到一棵决策树,它可以用来对新的样本进行分类。
某属性的信息增益按下列方法计算。
通过计算每个属性的信息增益,并比较它们的大小,就不难获得具有最大信息增益的属性。
设S是s个数据样本的集合。
假定类标号属性具有m个不同值,定义m个
不同类Ci(i=1,…,m)设si是类Ci中的样本数。
对一个给定的样本分类所需的期望信息由下式给出:
其中pi=si/s是任意样本属于Ci的概率。
注意,对数函数以2为底,其原因是信息用二进制编码。
设属性A具有v个不同值{a1,a2,……,av}可以用属性A将S划分为v个子集{S1,S2,……,Sv},其中Sj中的样本在属性A上具有相同的值aj(j=1,2,……)设sij是子集Sj中类Ci的样本数。
由A划分成子集的熵或信息期望由下式给出:
熵值越小,子集划分的纯度越高。
对于给定的子集Sj,其信息期望为
其中pij=sij/sj是Sj中样本属于Ci的概率。
在属性A上分枝将获得的信息增益是
Gain(A)=I(s1,s2,・-£锄)
ID3算法的优点是:
算法的理论清晰,方法简单,学习能力较强。
其缺点是:
只对比较小的数据集有效,且对噪声比较敏感,当训练数据集加大时,决策树可能会随之改变。
(2)C4.5算法
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2)在树构造过程中进行剪枝;
3)能够完成对连续属性的离散化处理;
4)能够对不完整数据进行处理。
C4.5算法与其它分类算法如统计方法、神经网络等比较起来有如下优点:
产生的分类规则易于理解,准确率较高。
其缺点是:
在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
此外,C4.5只适合于
能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
(3)SLIQ算法
SLIQ算法对C4.5决策树分类算法的实现方法进行了改进,在决策树的构造过程中采用了“预排序”和“广度优先策略”两种技术。
1)预排序。
对于连续属性在每个内部结点寻找其最优分裂标准时,都需要对
训练集按照该属性的取值进行排序,而排序是很浪费时间的操作。
为此,SLIQ
算法采用了预排序技术。
所谓预排序,就是针对每个属性的取值,把所有的记录按照从小到大的顺序进行排序,以消除在决策树的每个结点对数据集进行的排序。
具体实现时,需要为训练数据集的每个属性创建一个属性列表,为类别属性创建
一个类别列表。
2)广度优先策略。
在C4.5算法中,树的构造是按照深度优先策略完成的,
需要对每个属性列表在每个结点处都进行一遍扫描,费时很多,为此,SLIQ采
用广度优先策略构造决策树,即在决策树的每一层只需对每个属性列表扫描一次,就可以为当前决策树中每个叶子结点找到最优分裂标准。
SLIQ算法由于采用了上述两种技术,使得该算法能够处理比C4.5大得多的
训练集,在一定范围内具有良好的随记录个数和属性个数增长的可伸缩性。
然而它仍然存在如下缺点:
1)由于需要将类别列表存放于内存,而类别列表的元组数与训练集的元组数是相同的,这就一定程度上限制了可以处理的数据集的大小。
2)由于采用了预排序技术,而排序算法的复杂度本身并不是与记录个数成线性关系,因此,使得SLIQ算法不可能达到随记录数目增长的线性可伸缩性。
(4)SPRINT算法
为了减少驻留于内存的数据量,SPRINT算法进一步改进了决策树算法的数据结构,去掉了在SLIQ中需要驻留于内存的类别列表,将它的类别列合并到每个属性列表中。
这样,在遍历每个属性列表寻找当前结点的最优分裂标准时,不
必参照其他信息,将对结点的分裂表现在对属性列表的分裂,即将每个属性列表
分成两个,分别存放属于各个结点的记录。
SPRINT算法的优点是在寻找每个结点的最优分裂标准时变得更简单。
其缺点是对非分裂属性的属性列表进行分裂变得很困难。
解决的办法是对分裂属性进行分裂时用哈希表记录下每个记录属于哪个孩子结点,若内存能够容纳下整个哈希表,其他属性列表的分裂只需参照该哈希表即可。
由于哈希表的大小与训练集的大小成正比,当训练集很大时,哈希表可能无法在内存容纳,此时分裂只能分批执行,这使得SPRINT算法的可伸缩性仍然不是很好。
分类算法综述(三)贝叶斯(Bayes)分类算法
贝叶斯分类是统计学分类方法,它是一类利用概率统计知识进行分类的算法。
在许多场合,朴素贝叶斯(NalVeBayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,且方法简单、分类准确率高、速度快。
由于贝叶斯定理假设一个属性值对给定类的影响独立于其它属性的值,而此假设在实际情况中经常是不成立的,因此其分类准确率可能会下降。
为此,就出现了许多降低独立性假设的贝叶斯分类算法,女口TAN(treeaugmentedBayes
network)算法。
(1)朴素贝叶斯算法
设每个数据样本用一个n维特征向量来描述n个属性的值,即:
X={x1,x2,…,xn},假定有m个类,分别用C1,C2,…Cm表示。
给定一个未知的数据样本X(即没有类标号),若朴素贝叶斯分类法将未知的样本X分配给类Ci,则一定
是
P(Ci|X)>P(Cj|X)1 根据贝叶斯定理 由于P(X)对于所有类为常数,最大化后验概率P(Ci|X)可转化为最大化先验概率P(X|Ci)P(Ci)。 如果训练数据集有许多属性和元组,计算P(X|Ci)的开销可能非常大,为此,通常假设各属性的取值互相独立,这样 先验概率P(x1|Ci),P(x2|Ci),…,P(xn|Ci)可以从训练数据集求得。 根据此方法,对一个未知类别的样本X,可以先分别计算出X属于每一个类别Ci的概率P(X|Ci)P(Ci),然后选择其中概率最大的类别作为其类别。 朴素贝叶斯算法成立的前提是各属性之间互相独立。 当数据集满足这种独立性假设时,分类的准确度较高,否则可能较低。 另外,该算法没有分类规则输出。 (2)TAN算法 TAN算法通过发现属性对之间的依赖关系来降低NB中任意属性之间独立的假设。 它是在NB网络结构的基础上增加属性对之间的关联(边)来实现的。 实现方法是: 用结点表示属性,用有向边表示属性之间的依赖关系,把类别属性作为根结点,其余所有属性都作为它的子节点。 通常,用虚线代表NB所需的边,用实线代表新增的边。 属性Ai与Aj之间的边意味着属性Ai对类别变量C的影响还取决于属性Aj的取值。 这些增加的边需满足下列条件: 类别变量没有双亲结点,每个属性有一个类别变量双亲结点和最多另外一个属性作为其双亲结点。 找到这组关联边之后,就可以计算一组随机变量的联合概率分布如下: 其中nAi代表的是Ai的双亲结点。 由于在TAN算法中考虑了n个属性中(n-1)个两两属性之间的关联性,该算法对属性之间独立性的假设有了一定程度的降低,但是属性之间可能存在更多其它的关联性仍没有考虑,因此其适用范围仍然受到限制。 2.3基于关联规则的分类算法关联规则挖掘是数据挖掘研究的一个重要的、高度活跃的领域。 近年来,数据挖掘技术己将关联规则挖掘用于分类问题,取得了很好的效果。 ARCS(AssociationRuleClusteringSystem基于聚类挖掘关联规则,然后使用规则进行分类。 将关联规则画在2-D栅格上,算法扫描栅格,搜索规则的矩形聚类。 实践发现,当数据中存在孤立点时,ARCS比C4.5稍微精确一点。 ARCS 的准确性与离散化程度有关。 从可伸缩性来说,不论数据库多大,ARCS需要的存储容量为常数。 CBA(classificationbasedonassociation是基于关联规则发现方法的分类算法。 该算法分两个步骤构造分类器。 第一步: 发现所有形如xi1Ax=>Ci的关联规则,即右部为类别属性值的类别关联规则(classificationassociationrulesCAR)。 第二步: 从已发现的CAR中选择高优先度的规则来覆盖训练集,也就是说,如果有多条关联规则的左部相同,而右部为不同的类,则选择具有最高置信度的规则作为可能规则。 文献[4]对该过程进行了较深入的研究,使得算法在此步骤不需要对训练数据集进行过多的扫描。 CBA算法的优点是其分类准确度较高,在许多数据集上比C4.5更精确。 此 外,上述两步都具有线性可伸缩性。 CBA(ClassificationBasedonAssociation)是关联分类。 此算法把分类规则挖掘和关联规则挖掘整合到一起。 与CART和C4.5只产生部分规则不同的是,CBA 产生所有的类关联规则CARs(ClassAssociationRules)然后选择最好的规则去覆盖训练集。 另外,在此算法的框架中,数据库可以驻留在磁盘中 CAEP使用项集支持度挖掘HV露模式(EmergingPattern),而EP用于构造分类。 CAEP找出满足给定支持度和增长率阈值的EP。 己经发现,在许多数据集上,CAEP比C4.5和基于关联的分类更精确。 一种替代的、基于跳跃的HV露 模式JEP(JnmpingEmergingPattern是一种特殊类型的EP,项集的支持度由在一个数据集中的0陡峭地增长到另一个数据集中的非0。 在一此大的多维数据库中,JEP性能优于CAEP,但在一些小型数据库中,CAEP比JEP优,这二种分类法被认为是互补的。 ADT(AssociationDecisionTree)分二步实现以精确度驱动为基础的过度适合规则的剪枝。 第一步,运用置信度规则建立分类器。 主要是采用某种置信度的单调性建立基于置信度的剪枝策略。 第二步,为实现精确性,用关联规则建立一种 平衡于DT(DccisionTree)归纳的精确度驱动剪枝。 这样的结果就是ADT(AssociationBasedDecisionTree)。 它联合了大量的关联规则和DT归纳精确性驱动剪枝技术。 基于多维关联规则的分类算法CMAR(ClassificationBasedonMultipleClass-AssociationRules)是利用FP-Growth算法挖掘关联规则,建立类关联分布树FP—树。 采用CR—树(ClassificationRulcTrcc)结构有效地存储关联规则。 基于置信度、相关性和数据库覆盖来剪枝。 分类的具体执行采用加权厂来分析。 与CBA和C4.5相比,CMAR性能优异且伸缩性较好。 但CMAR优先生成的是长规则,对数据库的覆盖效果较差;利用加权x2统计量进行分类,会造成x2统计量的失真,致使分类值的准确程度降低。 CPAR(ClassificationBasedonPredictiveAssociationRules)整合了关联规则分类和传统的基于规则分类的优点。 为避免过度适合,在规则生成时采用贪心算法,这比产生所有候选项集的效率高;采用一种动态方法避免在规则生成时的重复计算;采用顶期精确性评价规则,并在预测时应用最优的规则,避免产生冗余的规则。 另外,MSR(MinimnmSetRule)针对基于关联规 则分类算法中产生的关联规则集可能太大的问题,在分类中运用最小关联规则集。 在此算法中,CARS并不是通过置信度首先排序,因为高置信度规则对噪声是很敏感的。 采用早期剪枝力方法可减少关联规则的数量,并保证在最小集中没有不 相关的规则。 实验证实,MSR比C45和CBA的错误率要低得多。 分类算法综述(四)基于数据库技术的分类算法 虽然数据挖掘的创始人主要是数据库领域的研究人员,然而提出的大多数算法则没有利 用数据库的相关技术。 在分类算法中,致力于解决此问题的算法有MIND(miningin database)禾口GAC-RDB(groupingandcounting-relationaldatabase)。 (1)MIND算法 MIND算法是采用数据库中用户定义的函数(user-definedfunction,UDF)实现发现 分类规则的算法。 MIND采用典型的决策树构造方法构建分类器。 具体步骤与SLIQ类似。 其主要区别在于它采用数据库提供的UDF方法和SQL语句实现树的构造。 简而言之,就 是在树的每一层,为每一个属性建立一个维表,存放各属性的每个取值属于各个类别的个数 以及所属的结点编号。 根据这些信息可以为当前结点计算每种分裂标准的值,选出最优的分 创建和修改需要进行多次,若用SQL实现,耗时很多,因此用UDF实现。 而分类标准的 寻找过程则通过创建若干表和视图,利用连接查询实现。 该算法的优点是通过采用UDF实现决策树的构造过程使得分类算法易于与数据库系统集成。 其缺点是算法用UDF完成主要的计算任务,而UDF一般是由用户利用高级语言实现的,无法使用数据库系统提供的查询处理机制,无法利用查询优化方法,且UDF的编写 和维护相当复杂。 此外,MIND中用SQL语句实现的那部分功能本身就是比较简单的操作,而采用SQL实现的方法却显得相当复杂。 (2)GAC-RDB算法 GAC-RDB算法是一种利用SQL语句实现的分类算法。 该算法采用一种基于分组计数的方法统计训练数据集中各个属性取值组合的类别分布信息,通过最小置信度和最小支持度 两个阈值找出有意义的分类规则。 在该算法中,首先利用SQL语句计算每个属性进行类别 判定的信息量,从而选择一个最优的分裂属性,并且按照信息量的大小对属性进行排序,随 后重复地进行属性的选择、候选分类表的生成、剪裁以及分类误差的计算,直到满足结束条件为止,比如,直到小于误差阈值和误差没有改变为止。 该算法的优点是具有与现有的其他分类器相同的分类准确度,执行速度有较大提高,而 且具有良好的伸缩性,应用程序易于与数据库系统集成。 其缺点是参数的取值需用户完成等。 分类算法综述(五)神经网络算法 2.6神经网络算法 神经网络是大量的简单神经元按一定规则连接构成的网络系统。 它能够模拟 人类大脑的机构和功能,采用各种学习算法从训练样本中学习,并将获取的知识 存储在网络各单元之间的连接权中。 神经网络主要有前向神经网络、后向神经网络和自组织网络。 在数据挖掘领域,主要采用前向神经网络提取分类规则。 神经 网络算法在1998年提出后,又出现许多变形,包括替换的误差函数、网络拓扑的动态调整、学习率和要素参数的动态调整。 近年来,从神经网络中提取规则受到越来越多的关注。 这主要有以下两种倾向: (1)网络结构分解的规则提取; (2)由神经网络的非线性映射关系提取。 未来神经网络的发展可向进一步降低算法的复杂度、提高提取规则的可理解性及算法的适用性方向发展。 分类算法综述(六)分类算法的评价标准 分类算法可以根据下列标准进行评价和比较。 (1)预测的准确率。 它包括模型正确地预测新的或先前未见过的样本的类标号的能力。 (2)计算速度。 分类的时间包括构造模型和使用模型进行分类的时间。 (3)强壮性。 指正确预测含有噪声和空缺值的数据集的能力。 (4)可伸缩性。 指对海量数据集有效地构造模型的能力。 (5)模型描述的简洁性和可解释性。 模型描述愈简洁、愈容易理解,则愈受欢迎。 分类算法综述(七)分类器的准确度评估方法 3.分类器的准确度评估方法 1.影响一个分类器错误率的因素 (1)训练集的记录数量。 生成器要利用训练集进行学习,因而训练集越大,分类器也就越可靠。 然而,训练集越大,生成器构造分类器的时间也就越长。 错误率改善情况随训练集规模的增大而降低。 (2)属性的数目。 更多的属性数目对于生成器而言意味着要计算更多的组合,使得生 成器难度增大,需要的时间也更长。 有时随机的关系会将生成器引入歧途,结果可能构造出 不够准确的分类器(这在技术上被称为过分拟合)。 因此,如果我们通过常识可以确认某个 属性与目标无关,则将它从训练集中移走。 (3)属性中的信息。 有时生成器不能从属性中获取足够的信息来正确、低错误率地预测标签(如试图根据某人眼睛的颜色来决定他的收入)。 加入其他的属性(如职业、每周工作小时数和年龄),可以降低错误率。 (4)待预测记录的分布。 如果待预测记录来自不同于训练集中记录的分布,那么错误 率有可能很高。 比如如果你从包含家用轿车数据的训练集中构造出分类器,那么试图用它来 对包含许多运动用车辆的记录进行分类可能没多大用途,因为数据属性值的分布可能是有很 大差别的。 2.评估方法 有两种方法可以用于对分类器的错误率进行评估,它们都假定待预测记录和训练集取自 同样的样本分布。 ⑴保留方法(Holdout): 记录集中的一部分(通常是2/3)作为训练集,保留剩余的部分用作测试集。 生成器使用2/3的数据来构造分类器,然后使用这个分类器来对测试 集进行分类,得出的错误率就是评估错误率。 虽然这种方法速度快,但由于仅使用2/3的数据来构造分类器,因此它没有充分利用 所有的数据来进行学习。 如果使用所有的数据,那么可能构造出更精确的分类器。 (2)交叉纠错方法(Crossvalidation): 数据集被分成k个没有交叉数据的子集, 所有子集的大小大致相同。 生成器训练和测试共k次;每一次,生成器使用去除一个子集 的剩余数据作为训练集,然后在被去除的子集上进行测试。 把所有得到的错误率的平均值作为评估错误率。 交叉纠错法可以被重复多次⑴,对于一个t次k分的交叉纠错法,k*t个分类器被构造并被评估,这意味着交叉纠错法的时间是分类器构造时间的k*t倍。 增加重复的次 数意味着运行时间的增长和错误率评估的改善。 我们可以对k的值进行调整,将它减少到 3或5,这样可以缩短运行时间。 然而,减小训练集有可能使评估产生更大的偏差。 通常Holdout评估方法被用在最初试验性的场合,或者多于5000条记录的数据集; 交叉纠错法被用于建立最终的分类器,或者很小的数据集。 试论贝叶斯分类、决策树分类分类挖掘算法的优势与劣势,以及解决维度效应的策 略 引言 数据分类是指按照分析对象的属性、特征,建立不同的组类来描述事物。 数据分类是数据挖 掘的主要内容之一,主要是通过分析训练数据样本,产生关于类别的精确描述。 这种类别通 常由分类规则组成,可以用来对未来的数据进行分类和预测。 分类技术解决问题的关键是构 造分类器。 一•数据分类数据分类一般是两个步骤的过程: 第1步: 建立一个模型,描述 给定的数据类集或概念集(简称训练集)。 通过分析由属性描述的数据库元组来构造模型。 每个元组属于一个预定义的类,由类标号属性确定。 用于建立模型的元组集称为训练数据集, 其中每个元组称为训练样本。 由于给出了类标号属性,因此该步骤又称为有指导的学习。 如果训练样本的类标号是未知的,则称为无指导的学习(聚类)。 学习模型可用分类规则、决策树和数学公式的形式给出。 第2步: 使用模型对数据进行分类。 包括评估模型的分类准确性以及对类标号未知的元组按模型进行分类。 常用的分类规则挖掘方法分类规则挖掘有着广泛的应用前景。 对于分类规则的挖掘通常有以下几种方法,不同的方法适用于不同特点的数据: 1.贝叶斯方法2.决策树方法3.人工神经网络方法4.约略集方法5.遗传算 法分类方法的评估标准: 准确率: 模型正确预测新数据类标号的能力。 速度:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分类 技术 综述