一种多核支持向量机分类方法

文档序号:6613693阅读:278来源:国知局
专利名称:一种多核支持向量机分类方法
技术领域
本发明涉及人工智能领域,特别是数据挖掘技术,具体涉及一种多核支持向量机分类方法。

背景技术
支持向量机作为一种有效的数据分析手段已经被广泛地应用。当数据分析任务比较简单,使用单个核函数的传统支持向量机能够在给定参数,单一稳定数据来源的数据集上有效地分类数据,求解问题。但在面临更复杂的异构数据情况下,传统的支持向量机由于只使用一个核函数,无法很好地在同一特征空间,同一参数下映射模型的所有特点,因此不能有效地训练一个决策函数,或者会得到一个具有过泛化性的决策函数,这样的决策函数会导致不准确地分类。
专利申请号为200510111501,专利申请名称为“用支持向量机多类分类器搜索特征点新位置的方法”,提出了一种用于图像处理领域,支持向量机多类分类器搜索特征点新位置的方法。该方法建立ASM模型并初始化ASM模型从而得到模型的初始位置;为人脸上的每个特征点生成对应的多类训练样本以训练支持向量机多类分类器;对于每一个特征点,用其对应的训练样本训练支持向量机多类分类器;用模型的初始位置作为ASM搜索的起始位置,并使用支持向量机多类分类器进行特征点定位。该方法不同于本发明,它仅是使用了基于支持向量机多类分类器并将其应用于图像领域中的搜索特征点新位置,没有使用多个核函数。
专利申请号为00808062,专利申请名称为“使用多个支持向量机从多个数据组中提升知识发现”,提出了在多个数据组中使用多个支持向量机。该方法强调多个支持向量机的使用。本发明与该方法的不同点在本发明中,不是使用多个支持向量机,而是将多个核函数引入支持向量机中,提升处理异构数据的能力。
专利申请号为02103795,专利申请名称为“基于多类支持向量机的中医舌色、苔色、舌苔厚度分析方法”,提出了在进行分级聚类分析生成聚类树并调整的基础上,采用基于聚类树的支持向量机(CTSVM)方法进行舌体区域像素识别。它采用了一种基于聚类树的支持向量机,与本发明是两种不同的应用支持向量机方法,并且应用的领域也不同。
在采用多个核函数的支持向量机分类方法中,Lanckriet等人在2004年提出了一种改进的类SMO算法来提高求解多核学习问题的效率。此算法将二次约束的二次规划问题转化其对偶问题,并完成从非平滑的凸优化问题向平滑的凸优化问题转换。本发明与它不同之处在于,本发明将多核学习问题转化为一个半无限线性规划问题。
Sonnenburg等人在2006年采用将多核学习问题转化为一个半无限线性规划问题来求解。此算法利用现有解决线性规划问题的工具箱和一个标准的支持向量机完成对半无限线性规划问题的求解,但它需要双层循环分别完成一个非线性规划和一个线性规划问题求解。本发明的求解方法与此方法的求解方法不同,本发明用一种全局收敛的方法来求解半无限线性规划问题。另外,此方法相对于本发明,它本身的时空复杂度较高,需要消耗大量的计算资源。


发明内容
鉴于上述分析,本发明提出一种多核支持向量机分类方法。它将多核支持向量机转化为半无限线性规划(Semi-infinite Linear Programming,SILP)问题求解,并保证其具有全局收敛的特性。
本发明包括四个部分数据预处理部分(Data Pretreatment Part,DPP)、核函数选择部分(Kernel Selection Part,KSP)、支持向量机实现部分(SupportVector Machine Implement Part,SVMIP)、人机交互部分(Human-computerInteraction Part,HIP)。其中DPP由数据规范化模块组成,负责各个异构数据源中数据的规范化处理。KSP由高斯核函数(Gaussian Kernel)模块、谱核函数(Spectrum Kernel)模块、加权度函数(Weighted Degree Kernel)模块组成,负责本发明中多个核函数的选择。SVMIP由SILP求解模块、条件检测模块、参数更新模块、目标函数更新模块组成,它负责对数据源中的数据进行分类,将多核支持向量机采用SILP方法求解,通过条件检测、参数更新、目标函数更新,从而划分异构数据源中的数据类别,是本发明的核心。HIP由命令交互模块、图形交互模块组成,负责用户和计算机的交互,将分类结果返回给用户。图1给出了一种多核支持向量机分类方法的体系结构。
本发明的工作流程见图2。
具体步骤表达如下 第一步、用户将数据的分类请求提交给DPP。由于处理的数据是异构数据,因此数据需要先进行规范化。
第二步、KSP选择核函数。这里有三种核函数供选择Gaussian Kernel、Spectrum Kernel、Weighted Degree Kernel。本发明是多核支持向量机的分类方法,它强调多个核函数的使用,其中每个核函数可以从Gaussian Kernel、Spectrum Kernel、Weighted Degree Kernel中任选一个。
Gaussian Kernel的公式 满足 其中σ为函数的宽度参数,控制函数的径向作用范围。sup(·)表示上界函数,α∈RN,0≤α≤C,Gk(α)=β-1(θk+λk)-S(α),β∈RK,β≥0,λk>0,C>0,N为正整数, Spectrum Kernel的公式φSK(x)=(φα(x))α∈A,(2) 满足sup{Gk(α)}≤sup{β-1(θk+λk)}+N·C。
其中α表示一个字符串,A表示生物信息字母表的顺序,|A|=1,φa(x)表示α在x中出现的次数,sup(·)表示上界函数,Gk(α)=β-1(θk+λk)-S(α),α∈RN,0≤α≤C,β∈RK,β≥0,λk>0,C>0,N为正整数, Weighted Degree Kernel的公式 满足sup{Gk(α)}≤sup{β-1(θk+λk)}+N·C。
其中d,l为正整数,k∈{1,2,…,d},uk,l(xi)表示在xi中从第一个位置开始取前k个字符组成的字符串。I(·)表示指示函数,当参数为真值时,函数值为1;否则函数值为0。sup(·)表示上界函数,Gk(α)=β-1(θk+λk)-S(α),α∈RN,0≤α≤C,β∈RK,β≥0,λk>0,C>0,N为正整数, 第三步、多核支持向量机问题转化为SILP问题。
多核支持向量机问题 w.r.t.α∈RN,β∈RK(4) s.t.0≤α≤C,β≥0, 其中Kk(xi,xj)为核函数。
多核支持向量机问题转化为SILP问题 其中α∈RN,Gk(α)=β-1(θk+λk)-S(α)。
设定初值θ=0,τ=0.5(τ∈
),λk>0,ξ为变量,SVMIP启动SILP求解模块对问题进行求解。
第四步、根据SILP求解模块得到的结果,SVMIP中的条件检测模块判断后一次(假定为第K+1次)迭代的值θK+1与前一迭代(假定为第K次)θK的差值是否小于等于变量ξ,即||θK+1-θK||≤ξ,如果满足,则HIP调用命令交互模块以命令行方式返回给用户,或者HIP调用图形交互模块以图形的方式返回给用户;否则执行第五步。
第五步、依据条件检测模块中的条件或者 如果满足调用SVMIP中的参数更新模块,更新如果满足调用SVMIP中的参数更新模块,更新θk+1=θk+λk;否则调用参数更新模块更新 第六步、调用目标函数更新模块更新目标函数Gk+1(α)=β-1(θk+1+λk)-S(α),转到第四步执行。
本发明中提供的多核支持向量机分类器具体性能分析如下 (1)该分类方法在处理异构数据上具有良好的性能。该分类方法将多个核函数引入到支持向量机中,提高了支持向量机处理复杂数据的能力,解决了单核支持向量机在处理不同数据源时存在的问题在参数的选择,决策函数的生成上对部分数据施加的影响相对较多,致使建立的模型平衡性相对较低,以及对特定数据有依赖,从而导致最终分类的准确率下降。
(2)该分类方法的问题求解具有全局收敛性。该分类方法将一种解决半无限线性规划问题的方法引入到多核支持向量机学习问题中,在此方法的基础上提出了一个解决多核支持向量机学习问题的方法。这种求解半无限线性规划的方法具有全局收敛性,同时该方法的计算量不随问题的规模而增加。
有益效果 使用该分类方法实现数据的分类有如下优点 (1)保证了分类问题求解的全局收敛性,增加了求解分类问题的能力。本发明采用一种半无限线性规划问题解决多核支持向量机分类问题,在保证分类准确率情况下,使分类问题的学习效率提高。
(2)模块化的设计思想使该分类方法具有更好的扩展性。该分类方法的DPP、KSP、SVMIP、HIP各个部分的功能相互协同工作决定了多核支持向量机分类方法的实现,体现了该分类方法可以针对不同应用进行扩展。
(3)算法时间复杂度 在时间复杂度上具有一定的优势。本发明提出的分类方法法相比于Sonnenburg等人在2006年提出的多核支持向量机学习算法具有时间复杂度上的优势。



图1-是多核支持向量机分类方法的体系结构, 该体系结构由数据预处理部分(Data Pretreatment Part,DPP)、核函数选择部分(Kernel Selection Part,KSP)、支持向量机实现部分(Support VectorMachine Implement Part,SVMIP)、人机交互部分(Human-computer InteractionPart,HIP)组成; 图2-是多核支持向量机分类方法的工作流程图。

具体实施例方式 下面结合附图和实施例对本发明做进一步说明。
利用本发明完成对地形区域的选择。以厦门的地形为例,区域范围定在(117°34’24”,24°36’32”)和(117°51’22”,24°26’46”)内。根据地形学及实际考察,在进行地形区域分类时,着重考虑如下因素高程、通行能力、遮蔽度、平坦度、通视率。根据这些因素,进行对厦门的地形区域分类。已知厦门这块区域(范围在(117°34’24”,24°36’32”)和(117°51’22”,24°26’46”)内)地形的类别有三类。
利用本发明实现厦门地形区域分成三类的步骤如下(工作流程图见附图2) 第一步、用户将厦门地形数据(区域范围(117°34’24”,24°36’32”)和(117°51’22”,24°26’46”))的分类请求提交给DPP。地形区域分类考虑的因素高程、通行能力、遮蔽度、平坦度、通视率。这些因素的数据事先已经被存储在不同类型的数据库或文件中。高程数据存储在厦门的地图数据库中;通行能力的数据存储在Oracle数据库中;遮蔽度、平坦度存储在XML文件中;通视率数据存储在SQL Server数据库中。因此这些数据首先要进行规范化。
第二步、利用KSP选择多个核函数。由于在第一步中,地形区域分类考虑的五个因素的数据处于四种类型的数据库或文件中,因此这里设定核函数的数目为4,每个核函数可以在Gaussian Kernel、Spectrum Kernel、Weighted DegreeKernel中任选一个。这里选择的四个核函数分别是Gaussian Kernel(参数σ设为0.4)、Gaussian Kernel(参数σ设为0.6)、Gaussian Kernel(参数σ设为0.75)和Weighted Degree Kernel(参数d设为10)。核函数参数的设定可以根据具体实际问题来定。
第三步、地形区域分类处理的数据是高维信息,地形中每个地理位置点作为一个数据,高程、通行能力、遮蔽度、平坦度、通视率作为该数据的属性,从而将地形区域分类问题可以用多核支持向量机求解,SVMIP调用SILP求解模块将多核支持向量机问题转化为SILP问题。
多核支持向量机问题 w.r.t.α∈RN,β∈RK s.t.0≤α≤ C,0≤β, 其中Kk(xi,xj)=<φk(xi),φk(xj)>为核函数。
多核支持向量机问题转化为SILP问题 其中α∈RN,Gk(α)=β-1(θk+λk)-S(α)。
设定初值θ=0,k=1,τ=0.5(τ∈
),λk>0,SILP求解模块对该问题进行求解。
第四步、根据SILP求解模块得到的结果,SVMIP中的条件检测模块判断后一次(假定为第k+1次)迭代的值θk+1与前一迭代(假定为第k次)θk的差值是否小于等于设定的变量ξ值,这里ξ值设为0.01,即||θk+1-θk||≤0.01。在这个例子中,用本发明的方法迭代了15次之后,满足了||θk+1-θk||≤0.01的条件,则厦门地形(区域范围(117°34’24”,24°36’32”)和(117°51’22”,24°26’46”))分成了三类,HIP调用图形交互模块,将分成三类的厦门地形,每个类别用一种颜色标记返回给用户;如果不满足||θk+1-θk||≤0.01的条件,则执行第五步。
第五步、依据条件检测模块中的条件或者 如果满足调用SVMIP中的参数更新模块,更新如果满足调用SVMIP中的参数更新模块,更新θk+1=θk+λk;否则调用参数更新模块更新 第六步、调用目标函数更新模块更新目标函数Gk+1(α)=β-1(θk+1+λk)-S(α),转到第四步执行,进行下一次的迭代。
权利要求
1.一种多核支持向量机分类方法,其特征在于包括以下步骤
第一步、用户将数据的分类请求提交给DPP;
第二步、KSP选择核函数;这里有三种核函数供选择Gaussian Kernel、Spectrum Kernel、Weighted Degree Kernel;本发明是多核支持向量机的分类方法,它强调多个核函数的使用,其中每个核函数可以从Gaussian Kernel、Spectrum Kernel、Weighted Degree Kernel中任选一个;
Gaussian Kernel的公式
满足
其中σ为函数的宽度参数,控制函数的径向作用范围;sup(·)表示上界函数,α∈RN,0≤α≤C,Gk(α)=β-1(θk+λk)-S(α),β∈RK,β≥0,λk>0,C>0,N为正整数,
Spectrum Kernel的公式φSK(x)=(φα(x))α∈A,(2)
满足sup{Gk(α)}≤sup{β-1(θk+λk)}+N·C;
其中α表示一个字符串,A表示生物信息字母表的顺序,|A|=1,φα(x)表示α在x中出现的次数,sup(·)表示上界函数,Gk(α)=β-1(θk+λk)-S(α),α∈RN,0≤α≤C,β∈RK,β≥0,λk>0,C>0,N为正整数,
Weighted Degree Kernel的公式
满足sup{Gk(α)}≤sup{β-1(θk+λk)}+N·C;
其中d,l为正整数,k∈{1,2,…,d},uk,l(xi)表示在xi中从第一个位置开始取前k个字符组成的字符串;I(·)表示指示函数,当参数为真值时,函数值为1;否则函数值为0;sup(·)表示上界函数, Gk(α)=β-1(θk+λk)-S(α),α∈RN,0≤α≤C,β∈RK,β≥0,λk>0,C>0,N为正整数,
第三步、多核支持向量机问题转化为SILP问题;
多核支持向量机问题
w.r.t.α∈RN,β∈RK(4)
s.t.0≤α≤C,β≥0,
其中Kk(xi,xj)为核函数;
多核支持向量机问题转化为SILP问题
其中α∈RN,Gk(α)=β-1(θk+λk)-S(α);
设定初值θ=0,τ=0.5(τ∈
),λk>0,ξ为变量,SVMIP启动SILP求解模块对问题进行求解;
第四步、根据SILP求解模块得到的结果,SVMIP中的条件检测模块判断后一次(假定为第K+1次)迭代的值θK+1与前一迭代(假定为第K次)θK的差值是否小于等于变量ξ,即‖θK+1-θK‖≤ξ,如果满足,则HIP调用命令交互模块以命令行方式返回给用户,或者HIP调用图形交互模块以图形的方式返回给用户;否则执行第五步
第五步、依据条件检测模块中的条件或者
如果满足调用SVMIP中的参数更新模块,更新如果满足调用SVMIP中的参数更新模块,更新否则调用参数更新模块更新
第六步、调用目标函数更新模块更新目标函数Gk+1(α)=β-1(θk+1+λk)-S(α),转到第四步执行。
全文摘要
本发明提出了一种多核支持向量机分类方法,涉及人工智能领域,特别是数据挖掘技术。本发明包括数据预处理部分、核函数选择部分、支持向量机实现部分、人机交互部分。工作过程是用户提交数据的分类请求给DPP;然后由KSP选择核函数;SILP求解模块将多核支持向量机问题转化为SILP问题进行求解;条件检测模块检测条件是否满足,若满足条件,则HIP将结果返回给用户,否则更新参数和目标函数,再调用SILP求解模块进行求解。本发明通过多个核函数来提高支持向量机处理复杂数据的能力,同时为了避免核函数的增加提升模型的复杂性和计算复杂性,将多核支持向量机问题转化为半无限线性规划问题,并通过一种全局收敛的方法进行求解。
文档编号G06F15/18GK101187913SQ20071017709
公开日2008年5月28日 申请日期2007年11月9日 优先权日2007年11月9日
发明者侃 李, 新 孙, 刘玉树 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1