分类算法总结

决策树分类算法

决策树归纳是经典的分类算法。

它采用自顶向下递归的各个击破方式构造决策树。

树的每一个结点上使用信息增益度量选择测试属性。

可以从生成的决策树中提取规则。

KNN法(K-Nearest Neighbor):

KNN法即K最近邻法,最初由Cover和Hart于1968年提出的,是一个理论上比较成熟的方法。

该方法的思路非常简单直观:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。

因此,采用这种方法可以较好地避免样本的不平衡问题。

另外,由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

另外还有一种Reverse KNN法,能降低KNN算法的计算复杂度,提高分类的效率。

该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

SVM法:

SVM法即支持向量机(Support Vector Machine)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。

该方法是建立在统计学习理论基础上的机器学习方法。

通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。

该方法只需要由各类域的边界样本的类别来决定最后的分类结果。

支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称为最大边缘(maximum margin)算法。

待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果。

VSM法:

VSM法即向量空间模型(Vector Space Model)法,由Salton等人于60年代末提出。这是最早也是最出名的信息检索方面的数学模型。

其基本思想是将文档表示为加权的特征向量:D=D(T1,W1;T2,W2;…;Tn,Wn),然后通过计算文本相似度的方法来确定待分样本的类别。

当文本被表示为空间向量模型的时候,文本的相似度就可以借助特征向量之间的内积来表示。

在实际应用中,VSM法一般事先依据语料库中的训练样本和分类体系建立类别向量空间。

当需要对一篇待分样本进行分类的时候,只需要计算待分样本和每一个类别向量的相似度即内积,然后选取相似度最大的类别作为该待分样本所对应的类别。

由于VSM法中需要事先计算类别的空间向量,而该空间向量的建立又很大程度的依赖于该类别向量中所包含的特征项。

根据研究发现,类别中所包含的非零特征项越多,其包含的每个特征项对于类别的表达能力越弱。

因此,VSM法相对其他分类方法而言,更适合于专业文献的分类。

Bayes法:

Bayes法是一种在已知先验概率与类条件概率的情况下的模式分类方法,待分样本的分类结果取决于各类域中样本的全体。

设训练样本集分为M类,记为C={c1,…,ci,…cM},每类的先验概率为P(ci),i=1,2,…,M。当样本集非常大时,可以认为P(ci)=ci类样本数/总样本数。

对于一个待分样本X,其归于cj类的类条件概率是P(X|ci),则根据Bayes定理,可得到cj类的后验概率P(ci|X):

P(ci|x)=P(x|ci)·P(ci)/P(x)(1)

若P(ci|X)=Ma**(cj|X),i=1,2,…,M,j=1,2,…,M,则有x∈ci(2)

式(2)是最大后验概率判决准则,将式(1)代入式(2),则有:

若P(x|ci)P(ci)=Maxj[P(x|cj)P(cj)],i=1,2,…,M,j=1,2,…,M,则x∈ci

这就是常用到的Bayes分类判决准则。经过长期的研究,Bayes分类方法在理论上论证得比较充分,在应用上也是非常广泛的。

Bayes方法的薄弱环节在于实际情况下,类别总体的概率分布和各类样本的概率分布函数(或密度函数)常常是不知道的。为了获得它们,就要求样本足够大。

另外,Bayes法要求表达文本的主题词相互独立,这样的条件在实际文本中一般很难满足,因此该方法往往在效果上难以达到理论上的最大值。

神经网络:

神经网络分类算法的重点是构造阈值逻辑单元,一个值逻辑单元是一个对象,它可以输入一组加权系数的量,对它们进行求和,如果这个和达到或者超过了某个阈值,输出一个量。

如有输入值X1, X2, …, Xn 和它们的权系数:W1, W2, …, Wn,求和计算出的 XiWi ,产生了激发层 a = (X1 W1)+(X2 W2)+…+(Xi Wi)+…+ (Xn * Wn),其中Xi 是各条记录出现频率或其他参数,Wi是实时特征评估模型中得到的权系数。

神经网络是基于经验风险最小化原则的学习算法,有一些固有的缺陷,比如层数和神经元个数难以确定,容易陷入局部极小,还有过学习现象,这些本身的缺陷在SVM算法中可以得到很好的解决。

你可能感兴趣的:(机器学习)