根据贝叶斯定理
由于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.遗传算
法分类方法的评估标准:
准确率:
模型正确预测新数据类标号的能力。
速度: