分类算法目录1.分类算法 (3)2.典型分类算法 (3)2.1 决策树分类算法 (3)2.1.1 算法概述 (3)2.1.2 算法优缺点 (3)2.1.3 算法分类介绍 (4)2.1.3.1 ID3(C4.5)算法 (4)2.1.3.2 SLIQ分类算法 (4)2.1.3.3 SPRINT分类算法 (5)2.2 三种典型贝叶斯分类器 (5)2.2.1 算法概述 (5)2.2.2 算法分类介绍 (5)2.2.2.1 朴素贝叶斯算法 (5)2.2.2.2 TAN算法 (6)2.2.2.3 贝叶斯网络分类器 (7)2.2.3 三类方法比较 (7)2.3 k-近邻 (8)2.4 基于数据库技术的分类算法 (9)2.4.1 MIND算法 (9)2.4.2 GAC-RDB算法 (9)2.5 基于关联规则的分类算法 (10)2.5.1 Apriori算法 (10)2.6 支持向量机分类 (11)2.7 基于软计算的分类方法 (11)2.7.1 粗糙集 (12)2.7.2 遗传算法 (12)2.7.3 模糊逻辑 (13)2.7.4 人工神经网络算法 (14)2.7.4.1 算法概述 (14)2.7.4.2 算法优缺点 (14)2.7.4.3 算法分类 (15)2.7.4.3.1 BP神经网络分类算法 (15)2.7.4.3.2 RBF神经网络 (16)2.7.4.3.3 SOFM神经网络 (17)2.7.4.3.4 学习矢量化(LVQ)神经网络 (17)3 其他分类算法 (18)3.1 LB算法 (18)3.2 CAEP算法 (18)1.分类算法分类的目的是通过分类函数或分类模型(也常常称作分类器),把数据库中的数据项映射到给定类别中的某一个。
用于提取描述重要数据类的模型或预测未来的数据趋势。
2.典型分类算法2.1 决策树分类算法2.1.1算法概述决策树(Decision Tree)是一种有向无环图(Directed Acyclic Graphics,DAG)。
决策树方法是利用信息论中的信息增益寻找数据库中具有最大信息量的属性字段,建立决策树的一个结点,在根据该属性字段的不同取值建立树的分支,在每个子分支子集中重复建立树的下层结点和分支的一个过程。
构造决策树的具体过程为:首先寻找初始分裂,整个训练集作为产生决策树的集合,训练集每个记录必须是已经分好类的,以决定哪个属性域(Field)作为目前最好的分类指标。
一般的做法是穷尽所有的属性域,对每个属性域分裂的好坏做出量化,计算出最好的一个分裂。
量化的标准是计算每个分裂的多样性(Diversity)指标。
其次,重复第一步,直至每个叶节点内的记录都属于同一类且增长到一棵完整的树。
2.1.2算法优缺点优点:(1)决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。
(2)对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
(3)能够同时处理数据型和常规型属性。
其他的技术往往要求数据属性的单一。
(4)决策树是一个白盒模型。
如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。
(5)易于通过静态测试来对模型进行评测。
表示有可能测量该模型的可信度。
(6)在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
(7)可以对有许多属性的数据集构造决策树。
(8)决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小。
缺点:(1)对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。
(2)决策树处理缺失数据时的困难。
(3)过度拟合问题的出现。
(4)忽略数据集中属性之间的相关性。
2.1.3算法分类介绍主要的决策树算法有ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT 算法等。
2.1.3.1ID3(C4.5)算法2.1.3.1.1算法概述ID3算法中,将信息增益作为属性的选择标准,以使得在对每一个非叶结点进行测试时,能获得关于被测试记录最大的类别信息。
ID3总是选则具有最高信息增益的属性作为当前结点的测试属性。
具体方法是:检测所有的属性,选择信息增益最大的属性产生决策树结点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树结点的分支,直到所有子集仅包含同一类别的数据为止,最后得到一棵决策树,它可以用来对新的样本进行分类。
ID3算法通过不断的循环处理,初步求精决策树,直到找到一个完全正确的决策树。
在选择重要特征时利用了信息增益的概念。
2.1.3.1.2 算法优缺点优点:(1)算法的基础理论清晰,方法简单,计算速度快;(2)搜索空间是完全的假设空间,目标函数就在搜索空间中,不存在无解的危险;(3)全盘使用训练数据,可得到一棵较为优化的决策树。
缺点:(1)不能增量地接受训练例,这就使得每增加一次实例都必须废除原有的决策树,重新计算信息增益并构造新的决策树,这造成极大的开销;(2)智能处理离散属性,在分类前需要对其进行离散化的处理;(3)在建树时,每个结点仅含一个特征,这是一种变元的算法,特征间的相关性强调不够;(4)对噪声较为敏感,数据质量差将直接导致生成的决策树过于庞大或决策树中很多分支的信息量很少;(5)在建树的过程中每当选择一个新属性时,算法只考虑了该属性带来的信息增益,未考虑到选择该属性后为后续属性带来的信息增益,即未考虑树的两层节点;(6)其信息增益存在一个内在偏置,它偏袒属性值数目较多的属性。
2.1.3.2 SLIQ分类算法2.1.3.2.1 算法概述针对C4.5改进算法而产生的样本集反复扫描和排序低效问题,SLIQ分类算法运用了预排序和广度优先两项技术。
2.1.3.2.2 算法优缺点优点:能处理比C4.5大得多的样本集(1)预排序技术消除了结点数据集排序。
(2)广度优先策略为决策树中每个叶子结点找到了最优分裂标准。
缺点:占用内存较多(1)限制了可以处理的数据集的大小;(2)预排序技术使算法性能不能随记录数目进行线性扩展。
2.1.3.3 SPRINT分类算法2.1.3.3.1 算法概述为了减少驻留于内存的数据量,SPRINT算法进一步改进了决策树算法的数据结构,去掉在SLIQ中需要驻留于内存的类别列表,将类别合并到每个属性列表中。
2.1.3.3.2 算法优缺点优点:由于在遍历每个属性列表中寻找当前结点的最优分裂标准时,不必参照其他信息,使寻找每个结点的最优分裂标准变得相对简单。
缺点:对非分裂属性列表进行分裂却变得非常困难。
因此,该算法的扩展性能较差。
2.2 三种典型贝叶斯分类器2.2.1算法概述贝叶斯分类是统计学分类算法,它是一类利用概率统计知识进行分类的算法。
它在先验概率与条件概率已知的情况下,预测类成员关系可能性的模式分类算法。
2.2.2算法分类介绍2.2.2.1 朴素贝叶斯算法2.2.2.1.1 算法概述朴素贝叶斯分类器以简单的结构和良好的性能受到人们的关注,它是最优秀的分类器之一。
朴素贝叶斯分类器建立在一个类条件独立性假设(朴素假设)基础之上:给定类结点(变量)后,各属性结点(变量)之间相互独立。
朴素贝叶斯分类器可以看作是贝叶斯网络的一种最简化的模型。
根据朴素贝叶斯的类条件独立假设,则有:)|()|(1Ci X P Ci X P mk K ∏==条件概率P(X1|Ci), P(X2|Ci),…,P(Xn|Ci)可以从训练数据集求得。
根据此方法,对一个未知类别的样本X ,可以先分别计算出X 属于每一个类别Ci 的概率P(X|Ci)P(Ci),然后选择其中概率最大的类别作为其类别。
朴素贝叶斯算法成立的前提是各属性之间相互独立。
当数据集满足这种独立性假设时,分类的准确度较高,否则可能较低。
另外,该算法没有分类规则输出。
2.2.2.1.2 算法优缺点优点:(1) 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
(2) NBC 模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。
(3) 在接受大量数据训练和查询时速度很快。
尤其当训练量递增时更是如此(我们可以分多次的对其进行学习的训练,而一些其他的方法如决策树和支持向量机要一次传送整个训练数据集)(4)其对分类器的学习情况有着比较简单的解释,可以简单的通过查询学习时计算的一些概率值来了解其分类原理。
缺点:(1) 理论上,NBC 模型与其他分类方法相比具有最小的误差率。
但是实际上并非总是如此,这是因为NBC 模型假设属性之间相互 独立,这个假设在实际应用中往往是不成立的(可以考虑用聚类算法先将相关性较大的属性聚类),这给NBC 模型的正确分类带来了一定影响。
在属性个数比较多 或者属性之间相关性较大时,NBC 模型的分类效率比不上决策树模型。
而在属性相关性较小时,NBC 模型的性能最为良好。
(2) 它无法处理特征符合所产生的变化。
(3) 需要知道先验概率。
(4) 分类决策存在错误率。
2.2.2.2 TAN 算法TAN 算法通过发现属性对之间的依赖关系来降低NB 中任意属性之间独立的额假。
它是在NB 网络结构的基础上增加属性对之间的关联(边)来实现的。
实现方法是:用结点表示属性,用有向边表示属性之间的依赖关系,把类别属性作为根结点,其余所有属性都作为它的子节点。
通常,用虚线代表NB 所需的边,用实线代表新增的边。
属性Ai 和Aj 之间的边意味着属性Ai 对类别变量C 的影响还取决于属性Aj 的值。
这些增加的边满足下列条件:类别变量没有双亲结点,每个属性有一个列别变量双亲结点和最多另外一个属性作为其双亲结点。
找到这组关联边之后,就可以计算一组随机变量的联合概率分布如下:∏∏==ni Ai Ai P C p An A A P 1)|()(),...,2,1(其中 Ai代表的是Ai的双亲结点。
由于在TAN算法中考虑了n个属性之间独立性的假设有了一定程度的降低,但是属性之间可能存在更多其它的关联性仍没有考虑,因此其使用范围仍然受到限制。
2.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)对测试集分类,得出分类准确度。