第2章 基于贝叶斯决策理论的分类器
2.1 分类器的描述方法
分类器是一种计算机程序,它的设计目标是在通过学习后,可自动将数据分到已知类别。分类器常应用在搜索引擎以及各种检索程序中,同时也大量应用于数据分析与预测领域。分类器是一种机器学习程序,因此归为人工智能的范畴。人工智能的多个领域,包括数据挖掘、专家系统、模式识别,都用到此类程序。对于分类器,其实质为数学模型。针对模型的不同,目前有多种分支,包括:贝叶斯网络分类器、决策树算法、SVM(支持向量机)算法等。
解决分类问题的方法很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、k-近邻法、支持向量机和基于关联规则的分类等;另外还有用于组合单一分类方法的集成学习算法,如装袋和提升/推进等。
(1)决策树
决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。
主要的决策树算法有ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT算法等。它们在选择测试属性采用的技术、生成的决策树的结构、剪枝的方法及时刻,以及能否处理大数据集等方面都有各自的不同之处。
(2)贝叶斯
贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法。这些算法主要利用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算法,如TAN(Tree Augmented Nave Bayes)算法,它是在贝叶斯网络结构的基础上增加属性对之间的关联来实现的。
(3)人工神经网络
人工神经网络(Artificial Neural Networks,ANN)是一种应用类似于大脑神经结构进行信息处理的数学模型。在这种模型中,大量的节点(或称“神经元”,或“单元”)之间相互连接构成网络,即“神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。训练改变了网络节点连接的权值,使其具有分类的功能,经过训练的网络就可用于对象的识别。
目前,神经网络已有上百种不同的模型,常见的有BP网络、径向基RBF网络、Hopfield网络、随机神经网络(Boltzmann机)、竞争神经网络(Hamming网络,自组织映射网络)等。但是当前的神经网络仍普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。
(4)k-近邻法
k-近邻(k-Nearest Neighbors,KNN)法是一种基于实例的分类方法。该方法就是找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为哪一类。k-近邻法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。
(5)支持向量机
支持向量机(Support Vector Machine,SVM)是Vaplik根据统计学习理论提出的一种新的学习方法,它的最大特点是根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力,较好地解决了非线性、高维数、局部极小点等问题。对于分类问题,支持向量机算法根据区域中的样本计算该区域的决策曲面,由此确定该区域中未知样本的类别。
(6)基于关联规则的分类
关联规则挖掘是数据挖掘中一个重要的研究领域。近年来,对于如何将关联规则挖掘用于分类问题,学者们进行了广泛的研究。关联分类方法挖掘形如condset→C的规则,其中condset是项(或属性值对)的集合,而C是类标号,这种形式的规则称为类关联规则(Class Association Rules,CARs)。关联分类方法一般由两步组成:第一步使用关联规则挖掘算法从训练数据集中挖掘出所有满足指定支持度和置信度的类关联规则;第二步使用启发式方法从挖掘出的类关联规则中挑选出一组高质量的规则用于分类。属于关联分类的算法主要包括CBA、ADT、CMAR等。
(7)集成学习
实际应用的复杂性和数据的多样性往往使得单一的分类方法不够有效。因此,学者们对多种分类方法的融合即集成学习(ensemble learning)进行了广泛的研究。集成学习已成为国际机器学习界的研究热点,并被称为当前机器学习四个主要研究方向之一。
集成学习是一种机器学习范式,它试图通过连续调用单个的学习算法,获得不同的基学习器,然后根据规则组合这些学习器来解决同一个问题,可以显著地提高学习系统的泛化能力。组合多个基学习器主要采用(加权)投票的方法,常见的算法有装袋(bagging)、提升/推进(boosting)等。
集成学习由于采用了投票平均的方法组合多个分类器,所以有可能减少单个分类器的误差,获得对问题空间模型更加准确的表示,从而提高分类器的分类准确度。
以上简单介绍了几种主要的分类方法,应该说都有各自不同的特点及优缺点。对于数据库负载的自动识别,应该选择哪种方法呢?用来比较和评估分类方法的标准主要有:
1)预测的准确率:模型正确地预测新样本的类标号的能力。
2)计算速度:包括构造模型以及使用模型进行分类的时间。
3)强壮性:模型对噪声数据或空缺值数据正确预测的能力。
4)可伸缩性:对于数据量很大的数据集,有效构造模型的能力。
5)模型描述的简洁性和可解释性:模型描述越简洁、越容易理解,则越受欢迎。