基于主成分和支持向量机的降维和模式分类

2011-04-11 01:05何晓桃郑文丰
淮阴工学院学报 2011年1期
关键词:超平面高维流程图

何晓桃,郑文丰,宋 晖

(1.广东工业大学 计算机学院,广州510006;2.广东省科普信息中心,广州510006;3.华南师范大学物理与电信工程学院,广州510006)

0 引言

模式识别(Pattern Recognition)是人类的一项基本智能,是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程。

模式分类可以是确定性的分类对象,也可以是基于概率的分类对象。其目的是对不同的研究对象寻找有效的方法来实现分类的最终结果。

1 主成分分析法

主成分分析法(Principal Component Analysis,PCA)是模式识别领域的一类常用的方法,被广泛地应用于特征提取,构成了子空间法模式识别的基础。PCA主要是基于K-L变换的思想,保留那些有显著贡献的特征向量。计算主成分的目的是将高维数据投影到较低维空间,即主要是通过种类间或个体间有关变量的差异进行计算和分析,确定哪些变量的差异是主要的,哪些是次要的,并找出不同种类或个体在所需维上应有的排序位置,进而探讨它们之间的相似(异)性程度。

设 x=(x1,x2,…,xn)T为 n 维随机矢量,则PCA具体计算步骤如下:

(1)将原始观察数据组成样本矩阵X,每一列为一个样本采样的属性数据x,每一行代表一个样本。

(2)计算样本的协方差矩阵:

(3)计算协方差矩阵CX的特征值λi及相应特征向量ui(其中i=1,2,…,n)。

(4)将特征值按由大到小顺序排列,并按照下式计算前m个主元的累积贡献率:

累积贡献率用于衡量新生成分量对原始数据的信息保存程度,通常要求其在85% ~95%即可。

(5)取前m个较大特征值对应的特征向量构成变换矩阵TT:

TT=(u1,u2,…,um)m < n

(6)通过Y=TX计算前m个主成分,达到降低维数的目的。

PCA具体实现过程就是先由原始数据算出一个协方差矩阵,再求得特征值向量,由这些特征向量构成一个特征值空间。然后将训练样本投影到特征空间,随后将测试样本也投影到特征值空间,与训练样本的投影相比较,选择最近的训练图像,即为测试样本图像所属的类别。其训练流程图为:

图1 PCA过程流程图

2 支持向量机

支持向量机是一种基于小样本的学习工具,其基本原理是在两类分类样本之间找到一个线性的分类面把两类样本分开,并且使两类之间的分类间隔最大。但实际应用中的分类数据几乎都无法用一个线性的分类面把它们分开,需要通过一个变换把数据从一个空间映射到另一个高维的空间,在这个高维的空间中数据是线性可分的。变换使用一个映射函数实现,这个映射函数被称为核函数。

我们通常希望分类的过程是一个机器学习的过程。这些数据点是n维实空间中的点。我们希望能够把这些点通过一个n-1维的超平面分开。通常这个被称为线性分类器。有很多分类器都符合这个要求。但是我们还希望找到分类最佳的平面,即使得属于两个不同类的数据点间隔最大的那个面,该面亦称为最大间隔超平面。如果我们能够找到这个面,那么这个分类器就称为最大间隔分类器。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。建立方向合适的分隔超平面使两个与之平行的超平面间的距离最大化。其假定为,平行超平面间的距离或差距越大,分类器的总误差越小。

支持向量机的过程流程图为:

图2 SVM过程流程图

3 SVM结合PCA降维的模式分类

由于PCA方法可以降维,而SVM方法有高分类准确率的优点,我们将两者结合起来作为一个新方法进行模式分类。与单纯的SVM不同的是,我们在数据归一化后加入了PCA降维这一步骤,其余的与单纯的SVM一样。其过程流程图如图3所示。

图3 PCA+SVM仿真流程图

4 仿真结果

本论文使用MATLAB进行仿真,仿真的Wine数据是来自UCI(University of California,Irvine)一个数据库。这是一个关于葡萄酒识别的数据。总共有14组数据178个样本,其中一组是分类标签(总共3类),余下的13组是属性特征,为各种成分的含量(酒精、苹果酸、灰、碱型灰、镁、酚类、黄酮、非黄酮类酚、原花青素、颜色强度、色调、稀释葡萄酒OD280/OD315、脯氨酸)。

首先将原数据分为两部分,前一部分(89个数据)最为训练集样本,后一部分(89个数据)作为测试集样本。

三种方法的仿真比较结果如表1所示。

表1 比较结果

根据表1,我们发现如果单独的使用PCA降维方法分类的准确率最低,单独使用SVM方法分类准确率最高(98.8764%),两者结合的PCA+SVM方法在两者之间(97.7528%);而在运算时间方面,单独使用PCA方法最快(7.598188秒),单独使用SVM方法最慢(26.490909秒),PCA+SVM在两者之间(14.638117秒)。

由此可见,PCA+SVM是通过牺牲一定的分类准确率来缩短运算时间的,在小样本数据分类时使用PCA+SVM有点不划算,但在大样本数据分类的时候这种代价交易是非常可观的,可以缩短运算时间,减少成本。

5 总结

主成分分析(PCA)方法就是使用较低的维数来表示高维的数据,并且尽可能地保持它们之间的“距离”信息;而支持向量机(SVM)方法则是高维特征空间中利用核函数把复杂的分类任务映射成一个线性分类超平面,使得分类的间隔最大化,即分类误差最小。这两种方法不仅在理论上有重要意义,而且在图像及多媒体数据库查找、web数据挖掘、基因数据库分析等应用领域也得到了广泛应用。

[1]Sungmoon C,SangH O,Soo- youngL.Support vector machines with binary tree architecture for multiclass classification[J].Neural Information Processing Letters and Reviews,2004,2(3):47 -51.

[2]刘晓洁.基于PCA的贝叶斯网络分类器研究[J].电子设计工程,2009(9):86-87.

[3]Lin Chun-Fu,Wang Sheng-De.Fuzzy Support Vector Machines[J].IEEE Transaction On Networks,2002,13(2):464-471.

[4]王双维.基于PCA的医疗数据特征提取方法研究及应用[D].长沙:中南大学,2008.

[5]祁立,刘玉树.基于两阶段聚类的模糊支持向量机[J].计算机工程,2008,34(1):4 -6.

[6]林升梁,刘志.基于RBF核函数的支持向量机参数选择[J].浙江工业大学学报,2007,35(2):256-270.

猜你喜欢
超平面高维流程图
全纯曲线的例外超平面
涉及分担超平面的正规定则
以较低截断重数分担超平面的亚纯映射的唯一性问题
一种改进的GP-CLIQUE自适应高维子空间聚类算法
专利申请审批流程图
专利申请审批流程图
一般非齐次非线性扩散方程的等价变换和高维不变子空间
分担超平面的截断型亚纯映射退化性定理
高维Kramers系统离出点的分布问题
宁海县村级权力清单36条