分类算法综述Word格式文档下载.docx

上传人:b****5 文档编号:16334370 上传时间:2022-11-23 格式:DOCX 页数:9 大小:31.75KB
下载 相关 举报
分类算法综述Word格式文档下载.docx_第1页
第1页 / 共9页
分类算法综述Word格式文档下载.docx_第2页
第2页 / 共9页
分类算法综述Word格式文档下载.docx_第3页
第3页 / 共9页
分类算法综述Word格式文档下载.docx_第4页
第4页 / 共9页
分类算法综述Word格式文档下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

分类算法综述Word格式文档下载.docx

《分类算法综述Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《分类算法综述Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。

分类算法综述Word格式文档下载.docx

2典型分类算法介绍解决分类问题的方法很多,下面介绍一些经典的分类方法,分析各自的优缺点。

2.1决策树分类算法决策树(DecisionTree)是一种有向无环图(DirectedAcyclicGraphics,DAG)。

决策树方法是利用信息论中的信息增益寻找数据库中具有最大信息量的属性字段,建立决策树的一个结点,在根据该属性字段的不同取值建立树的分支,在每个子分支子集中重复建立树的下层结点和分支的一个过程。

构造决策树的具体过程为:

首先寻找初始分裂,整个训练集作为产生决策树的集合,训练集每个记录必须是已经分好类的,以决定哪个属性域(Field)作为目前最好的分类指标。

一般的做法是穷尽所有的属性域,对每个属性域分裂的好坏做出量化,计算出最好的一个分裂。

量化的标准是计算每个分裂的多样性(Diversity)指标。

其次,重复第一步,直至每个叶节点内的记录都属于同一类且增长到一棵完整的树。

主要的决策树算法有ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT算法等。

它们在选择测试属性采用的技术、生成的决策树的结构、剪枝的方法以及时刻,能否处理大数据集等方面都有各自的不同之处。

2.1.1ID3(C4.5)算法在当前决策树学习的各种算法中,影响最大的是JR.Quinlan于1986年提出的ID3算法,他提出用信息增益作为属性的选择标准,以使得在对每一个非叶结点进行测试时,能获得关于被测试记录最大

的类别信息。

ID3总是选则具有最高信息增益的属性作为当前结点的测试属性。

具体方法是:

检测所有的属性,选择信息增益最大的属性产生决策树结点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树结点的分支,直到所有子集仅包含同一类别的数据为止,最后得到一棵决策树,它可以用来对新的样本进行分类。

ID3算法通过不断的循环处理,初步求精决策树,直到找到一个完全正确的决策树。

在选择重要特征时利用了信息增益的概念。

该算法优点在于:

(1)算法的基础理论清晰,方法简单,计算速度快;

(2)搜索空间是完全的假设空间,目标函数就在搜索空间中,不存在无解的危险;

(3)全盘使用训练数据,可得到一棵较为优化的决策树。

在实际应用中,对于非增量式的学习任务,ID3算法通常是建立决策树的很好选择,但该算法不足之处在于:

(1)不能增量地接受训练例,这就使得每增加一次实例都必须废除原有的决策树,重新计算信息增益并构造新的决策树,这造成极大的开销;

(2)智能处理离散属性,在分类前需要对其进行离散化的处理;

(3)在建树时,每个结点仅含一个特征,这是一种变元的算法,特征间的相关性强调不够;

(4)对噪声较为敏感,数据质量差将直接导致生成的决策树过于庞大或决策树中很多分支的信息量很少。

(5)在建树的过程中每当选择一个新属性时,算法只考虑了该属性带来的信息增益,未考虑到选择该属性后为后续属性带来的信息增益,即未考虑树的两层节点;

(6)

其信息增益存在一个内在偏置,它偏袒属性值数目较多的属性。

2.1.2SLIQ分类算法针对C4.5改进算法而产生的样本集反复扫描和排序低效问题,SLIQ分类算法运用了预排序和广度优先两项技术。

预排序技术消除了结点数据集排序,广度优先策略为决策树中每个叶子结点找到了最优分裂标准。

SLIQ分类算法由于采用了上述两项技术使其能处理比C4.5大得多的样本集。

但由于所需内存较多,这在一定程度上限制了可以处理的数据集的大小;

预排序技术也使算法性能不能随记录数目进行线性扩展。

2.1.3SPRINT分类算法为了减少驻留于内存的数据量,SPRINT算法进一步改进了决策树算法的数据结构,去掉在SLIQ中需要驻留于内存的类别列表,将类别合并到每个属性列表中。

这样,在遍历每个属性列表中寻找当前结点的最优分裂标准时,不必参照其他信息,使寻找每个结点的最优分裂标准变得相对简单,但缺点是对非分裂属性列表进行分裂却变得非常困难。

因此,该算法的扩展性能较差。

此外,基于决策树的主要改进算法还包括EC4.5、CART(classificationandregressiontree)、PUBLIC(pruningandbuildingintegreatedinclassification)等。

2.2三种典型贝叶斯分类器贝叶斯分类是统计学分类算法,它是一类利用概率统计知识进行分类的算法。

它在先验概率与条件概率已知的情况下,预测类成员关系可能性的模式分类算法。

如计算一个给定样本属于一个特性类的概

率,并选定其中概率最大的一个类别作为该样本的最终判别。

假设每个训练样本用一个n维特征向量X={x1,x2,…,xn}表示,分别描述n个属性A1,A2,…,An对样本的测量。

将训练样本集分为m类,记为C1,C2,…,Cm。

贝叶斯原理通常用下面的公式来表示:

P(X|Ci)P(Ci)P(Ci|X)mP(X|Cj)P(Cj)j1其中,X表示观测数据样本,Cj为某种假设,P(Ci)是Ci的先验概率,(i,j=1,2,..,m)P(X|Ci)是条件概率,先验概率对条件概率加权平均后,得到条件X下,Ci的后验概率P(Ci|X)。

上述是朴素贝叶斯的工作过程,也是贝叶斯分类算法的判别准则。

在许多场合,朴素贝叶斯(Naï

veBayes,NB)分类可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,且方法简单、分类准确率高、速度快。

由于贝叶斯定理假设一个属性值对给定类的影响独立于其它的属性值,而此假设在实际情况中经常是不成立的,因此其分类准确率可能会下降。

为此,就出现了许多降低独立性假设的贝叶斯分类算法,如TAN(treeaugmentedBayesnetwork)算法、贝叶斯网络分类器(Bayesiannetworkclassifier,BNC)。

2.2.1朴素贝叶斯算法朴素贝叶斯分类器以简单的结构和良好的性能受到人们的关注,它是最优秀的分类器之一。

朴素贝叶斯分类器建立在一个类条件独立性假设(朴素假设)基础之上:

给定类结点(变量)后,各属性结点(变量)之间相互独立。

朴素贝叶斯分类器可以看作是贝叶斯网络的一种最简化的模型。

根据朴素贝叶斯的类条件独立假设,则有:

mP(X|Ci)P(X|Ci)Kk1条件概率P(X1|Ci),P(X2|Ci),…,P(Xn|Ci)可以从训练数据集求得。

根据此方法,对一个未知类别的样本X,可以先分别计算出X属于每一个类别Ci的概率P(X|Ci)P(Ci),然后选择其中概率最大的类别作为其类别。

朴素贝叶斯算法成立的前提是各属性之间相互独立。

当数据集满足这种独立性假设时,分类的准确度较高,否则可能较低。

另外,该算法没有分类规则输出。

2.2.2TAN算法TAN算法通过发现属性对之间的依赖关系来降低NB中任意属性之间独立的额假。

它是在NB网络结构的基础上增加属性对之间的关联(边)来实现的。

实现方法是:

用结点表示属性,用有向边表示属性之间的依赖关系,把类别属性作为根结点,其余所有属性都作为它的子节点。

通常,用虚线代表NB所需的边,用实线代表新增的边。

属性Ai和Aj之间的边意味着属性Ai对类别变量C的影响还取决于属性Aj的值。

这些增加的边满足下列条件:

类别变量没有双亲结点,每个属性有一个列别变量双亲结点和最多另外一个属性作为其双亲结点。

找到这组关联边之后,就可以计算一组随机变量的联合概率分布如下:

nP(A1,A2,...,An)p(C)P(Ai|Ai)i1其中代表的是Ai的双亲结点。

由于在TAN算法中考虑了Ai

n个属性之间独立性的假设有了一定程度的降低,但是属性之间可能存在更多其它的关联性仍没有考虑,因此其使用范围仍然受到限制。

2.2.3贝叶斯网络分类器贝叶斯网络分类器放弃了朴素贝叶斯分类器的条件独立性假设,所以最能与领域数据相吻合。

在贝叶斯网络的结构中类结点地位同其他属性结点一样,也可以有父节点。

本文采用基于搜索打分的方法构造贝叶斯分类器,搜索打分算法采用K2搜索算法和BIC评分函数。

贝叶斯网络分类方法如下:

1)输入:

训练集D;

变量顺序;

变量父结点个数上界u;

2)K2算法构造BNC:

a、所有结点组成无向图b、确定变量jX的父结点个数,等于u则停止为它寻找父结点;

c、如果父节点的个数大于u,则从中按顺序选择jX之前的节点,但不是jX父结点的变量iX做为jX的父结点;

d、使用BIC测度对新结构打分;

e、同前次打分比较,如果评分高,则添加iX为jX的父节点;

如果BIC评分低,则停止为jX寻找父结点;

3)使用训练数据集进行参数学习(最大似然估计法);

4)对测试集分类,得出分类准确度。

下面主要从分类准确度和分类耗时这两个方面分析比较这三种分类器。

(1)朴素贝叶斯分类器。

从分类准确度上看,NBC虽然结构简单但是它的分类准确度并不低。

从分类耗时看,NBC普遍比其它两

种分类器花费的时间少,这与它不需要结构学习,计算复杂度低是密切相关的。

NBC在现实中有着广泛的适应性,这主要还因为在大部分领域中属性之间的依赖关系要明显低于属性和类别之间的依赖关系,所以NBC的条件独立性假设是具有一定的现实意义的。

(2)基于BIC测度的TAN分类器是所有NBC改进分类器中效果最好的一个。

TAN分类器的分类准确度普遍高于NBC,TAN分类器放松了条件独立性假设这是同现实世界相符合的,当属性之间关联性越大时,TAN分类器的效果就越好。

TAN分类器中需要设置根节点,根节点就是选择除去类节点以外的属性节点作为其它属性节点的根节点,根节点的设置对分类准确度并没有很大的影响。

从分类时间上看,TAN分类器在这三种分类器中是花费时间最长的。

(3)理论上BNC分类器应该有最好的分类效果,但是实际中,BNC的分类效果并不理想,这主要与两个因素有关:

(1)数据集的规模。

BNC对大样本的数据集有较好的分类效果,在小规模数据集情况下就不如NBC和TAN;

(2)在使用K2算法进行结构学习的过程中有一个重要的参数,用来确定结点变量的次序,它对先验知识的依赖性很大。

在不了解相关的领域或没有专家的指导的情况下,确定变量的次序就变得相当困难。

从分类耗时上看,BNC分类器的分类耗时比NBC要长,同TAN比较有一定的不确定性,它普遍要比TAN分类时间短。

这三种分类器并不是对每种数据集都有好的分类效果,因此在对数据集选择分类器的时候还需要具体情况具体对待,主要考查属性之间的关联性、数据的规模和时间限制等方面。

数据集属性相关性小的时候选择NBC有较好的分类效果,数据集属性相关性大时候选择TAN分类器。

在数据集规模较大且具有一定先验知识时选择贝叶斯网络分类器。

2.3k-近邻k-近邻(kNN,k-NearestNeighbors)算法是一种基于实例的分类方法,是一种非参数的分类技术。

基本原理:

KNN分类算法搜索样本空间,计算未知类别向量与样本集中每个向量的相似度,在样本集中找出K个最相似的文本向量,分类结果为相似样本中最多的一类。

但在大样本集和高维样本分类中(如文本分类),KNN方法的缺陷凸显。

表现在以下几个方面:

(1)KNN分类算法是懒散的分类算法,对于分类所需的计算均推迟至分类进行,故在其分类器中存储有大量的样本向量。

在未知类别样本需要分类时,在计算所以存储样本和未知类别样本的距离时,高维样本或大样本集所需要的时间和空间的复杂度均较高。

(2)KNN分类算法是建立在VSM模型上的,其样本距离测度使用欧氏距离。

若各维权值相同,即认定各维对于分类的贡献度相同,显然这不符合实际情况。

基于上述缺点,人们也采用了一些改进算法:

当样本数量较大时,为减小计算,可对样本集进行编辑处理,即从原始样本集中选择最优的参考子集惊醒KNN计算,以减少样本的存储量和提高计算效率。

2.4基于数据库技术的分类算法虽然数据挖掘的创始人主要是数据库领域的研究人员,然而提出

的大多数算法则没有利用数据库的相关技术。

在分类算法中,致力于解决此问题的算法有MIND(miningindatabase)和GAC-RDB(groupingandcounting-relationaldatabase)。

2.4.1MIND算法MIND算法是采用数据库中用户自定义的函数(user-definedfunction,UDF)实现发现分类规则的算法。

MIND采用典型的决策树构造方法构建分类器。

具体步骤与SLIQ类似。

其主要区别在于它采用数据库提供的UDF方法和SQL语句实现树的构造。

简而言之,就是在树的每一层,为每一个属性建立一个维表,存放各属性的每个取值属于各个类别的个数以及所属的结点编号。

根据这些信息可以为当前结点计算每种分裂标准的值,选出最优的分裂标准,然后据此对结点进行分裂,修改维表中结点编号列的值。

在上述过程中,对维表的创建和修改需要进行多次,若用SQL实现,耗时很多,因此用UDF实现。

而分类标准的寻找过程则通过创建若干表和视图,利用连接查询实现。

该算法的优点是通过采用UDF实现决策树的构造过程使得分类算法易于与数据库系统集成。

其缺点是算法用UDF完成主要的计算任务,而UDF一般是由用户利用高级语言实现的,无法使用数据库系统提供的查询处理机制,无法利用查询优化方法,且UDF的编写和维护相当复杂。

此外,MIND中用SQL语句实现的那部分功能本身就是比较简单的操作,而采用SQL实现的方法却显得相当复杂。

2.4.2GAC-RDB算法GAC-RDB算法是一种利用SQL语句实现的分类算法。

该算法采

用一种基于分组计数的方法统计训练数据集中各个属性取值组合的类别分布信息,通过最小置信度和最小支持度两个阈值找出有意义的分类规则。

在该算法中,首先利用SQL语句计算每个属性进行类别判定的信息量,从而选择一个最优的分裂属性,并且按照信息量的大小对属性进行排序,然后重复地进行属性的选择、候选分类表的生成、剪裁以及分类误差的计算,直到满足结束条件为止。

比如,直到小于误差阈值和误差没有改变为止。

该算法的优点是具有与现有的其他分类器相同的分类准确度,执行速度有较大提高,而且具有良好的伸缩性,应用程序易于与数据库系统集成。

其缺点是参数的取值需用户完成等。

2.5基于关联规则(CBA:

ClassificationBasedonAssociationRule)的分类挖掘关联规则就是发现大量数据中项集之间有趣的关联或相关联的过程。

关联规则挖掘用于分类问题取得了很好的效果。

2.5.1Apriori算法Apriori算法是挖掘产生布尔关联规则所需频繁项集的基本算法,也是著名的关联规则算法之一。

属于单维、单层、布尔关联规则。

它使用一种称作逐层搜索的迭代方法,k-项集用于搜索(k+1)-项集。

首先,招数频繁1-项集的集合,记作。

用于找频繁2-项集的集合LL11,而用于找,直到不能找到频繁k-项集。

找每个需要一次扫LLLLk322描数据库。

利用来获得主要包括两个处理步骤,即连接和剪枝LLkk1操作步骤。

最后扫描数据库,计算数据库中各个项集的支持度,将其中不满足支持度的项集去掉。

通过迭代循环,重复进行连接和剪枝,

最终找到所有的频繁项集。

目前几乎所有高效的发现关联规则的数据挖掘算法都是基于Apriori算法的,Apriori算法在剪枝过程中的每个元素需要在交易数据中进行验证来决定是否加入,这里的验证是算法性能的一个瓶颈。

这个方法要求多次扫描可能很大的交易数据库。

可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

针对Apriori算法的缺陷,LIG(largeitemsgeneration)算法在求解频繁1-项集的同事计算相应项的相关区间,以此得到缩小了的项集的潜在频繁2-项集。

频繁模式增长(FP)算法放弃利用潜在频繁项集求解频繁项集的做法,进而提出频率增长算法。

该算法通过扫描数据集得到频繁项的集合以及各项支持度,并按支持度大小降序排列频繁项目列表,然后通过构造一个FP-树来进行关联规则挖掘。

其优点是:

在完备性上,它不会打破任何模式且包含挖掘所需的全部信息,并不包含非频繁项,故支持度高的项在FP-树中共享机会也高。

该算法比Apriori算法快一倍,但当数据集过大时,所构建的FP-树仍受内存制约。

2.6支持向量机分类支持向量机(SupportVectorMachine)是Cortes和Vapnik与1995年首先提出的,它在解决小样本、非线性及高维模式识别中有许多特有的优势,并能推广应用到函数拟合等其他机器学习问题中。

支持向量机(SVM)方法是建立在统计学习理论的VC维和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习

能力之间寻求最佳折衷,以期获得最好的推广能力。

SVM是从线性可分情况下的最优分类面发展而来的,使分类间隔最大实际上就是对推广能力的控制,这是SVM的核心思想之一。

由于统计学习理论和支持向量机建立了一套较好的在小样本下机器学习的理论框架和通用方法,既有严格的理论基础,又能较好地解决小样本、高维和局部极小点等实际问题,因此成为继神经网络之后的又一个研究方向。

但是,处理大规模数据集时,SVM速度慢,往往需要较长的训练时间。

而且,SVM方法需要计算和存储核函数矩阵,当样本数目较大时,需要很大的内存。

其次,SVM在二次型寻优过程中要进行大量的矩阵运算,多数情况下,寻优算法是占用算法时间的主要部分。

2.7基于软计算的分类方法在数据挖掘领域,软计算的用途越来越广泛:

模糊逻辑用于处理不完整、不精确的数据以及近似答案等;

神经网络用于高分线性决策、泛化学习、自适应、自组织和模式识别;

遗传算法用于动态环境下的高效搜索、复杂目标对象的自适应和优化;

粗糙集根据“核”属性获得对象的近似描述,能有效处理不精确、不一致、不完整等各种不完备信息。

当数据集表现出越来越多的无标签性、不确定性、不完整性、非均匀性和动态性特点时,传统数据挖掘算法对此往往无能为力,软计算却为此提供一种灵活处理数据的能力,软计算内的融合与传统数据挖掘方法的结合逐渐成为数据挖掘领域的研究趋势。

2.7.1粗糙集(roughset)粗糙集理论是一种刻划不完整和不确定性数据的数学工具,不需

要先验知识,能有效地处理各种不完备信息,从中发现隐含的知识,并和各种分类技术相结合建立起来能够对不完备数据进行分类的算法。

粗糙集理论将分类能力和知识联系在一起,使用等价关系来形式化地表示分类,知识因而表示为等价关系集R对离散空间U的划分。

粗糙集理论还包括求取数据中最小不变集合最小规则集的额理论,即简约算法(即分类中属性简约和规则生成),其基本原理是通过求属性的重要性并排序,在泛化关系中找出与原始数据具有同一决策或分辨能力的相关属性的最小集合,以此实现信息简约,这也是粗糙集理论在分类中的应用。

简约主要借助于信息表达这样一种有效的知识表达形式;

在保持信息表中决策属性和条件属性依赖关系不变时进行的信息表简约,具体包括属性简约和值简约。

属性简约在一定程度上对信息表中的非必要的冗余信息进行简约,但对每一个实例而言仍可能存在不必要的属性,因此在不引起冲突的条件下可将每一个实例的不必要属性删除,即为值简约。

值简约的最终结果就是分类所需要的规则,常见的值简约算法包括归纳值简约、启发式值简约、基于决策矩阵的值简约算法、增量式规则获取算法和其他一些改进算法。

粗糙集本身限制条件较强,在实际应用中,可以模态逻辑和概率统计信息对基本粗糙集模型进行扩展,从而形成了代数粗糙集模型和概率统计粗糙集模型。

2.7.2遗传算法遗传算法在解决多峰值、非线性、全局优化等高复杂度问题时具

备独特优势,它是以基于进化论原理发展起来的高效随机搜索与优化方法。

它以适应函数为依据,通过对群体、个体施加遗传操作来实现群体内个体结构的优化重组。

在全局范围内逼近最优解。

遗传算法综合了定向搜索与随机搜索的优点。

避免了大多数经典优化方法基于目标函数的梯度或高阶导数而易陷入局部最优的缺陷,可以取得较好的区域搜索与空间扩展的平衡。

在运算时随机的多样性群体和交叉运算利于扩展搜索空间;

随着高适应值得获得,交叉运算利于在这些解周围搜索。

遗传算法由于通过保持一个潜在解的群体进行多方向的搜索而有能力跳出局部最优解。

遗传算法的应用主要集中在分类算法等方面。

而基本思路如下:

数据分类问题看成是在搜索问题,数据库看作是搜索空间,分类算法看作搜索策略。

因此,应用遗传算法在数据库中进行搜索,对随机产生的一组分类规则进行进化,直到数据库能被该组分类规则覆盖,从而挖掘出隐含在数据库中的分类规则。

应用遗传算法进行数据分类,首先要对实际问题进行编码;

然后定义遗传算法的适应度函数,由于算法用于规则归纳,因此,适应度函数有规则覆盖的正例和反例来定义。

1978年Holland实现了第一个基于遗传算法的机器学习系统CS-1(cognitivesystemlevelone),其后又提出了桶队(BucketBrigade)算法。

1981年Smith实现了与CS-1有重大区别的分类器LS-1,以此为基础,人们又提出了基于遗传算法的分类系统,如GCLS(geneticclassifierlearningsystem)等算法。

2.7.3模糊逻辑模糊数学是研究模糊现象数学。

模糊数学最基本概念是隶属函数,

即以一个值域在[0,1]之间的隶属函数来描述论域中对象属于某一个类别的程度,并以此为基础确定模糊集的运算法则、性质、分解和扩展原理、算子、模糊的、模糊集的近似程度等度量概念和算法。

分类操作离不开向量相似程度的计算,而模糊分类操作也需要向量模糊相似系数的计算。

在模糊分类方法中,首先要建立模糊相似矩阵,表示对象的模糊相似程度其元素称为模糊相似系数,其确定方法主要有:

数量积法、夹角余弦法、相关系数法、最大最小法、算术平均最小法、几何平均最小法、绝对值指数法、指数相似系数法、绝对值倒数法、绝对值减数法、参数法、贴近度法。

模糊分类方法可以很好地处理客观事物类别属性的不明确性,主要包括传达闭包法、最大树法、编网法、基于摄动的模糊方法等。

但人们更多地将模糊方法与其他分类算法结合起来,既有与传统分类算法,如模糊决策树、模糊关联规则挖掘等的结合,也有与软计算在内其他算法,如模糊神经网络等的结合。

2.7.4人工神经网络算法神经网络是分类技术中重要方

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1