基于决策树的支持向量机多分类研究
罗沛清
95148部队
引言
支持向量机(support vector machines, SVM)是由 Vapnik[1,2]提出的针对两分类问题形成的机器学习算法。通过在线性可分问题上引入最大间隔分割的思想保证分类正确率。在面对非线性可分的问题时,引入核函数理论,把低维数据映射到高维空间上,在高维空间上实现线性可分,同时引入惩罚因子概念,可以去除边界噪点提高泛化能力。目前对多个分类分体,通过组合多个支持向量机或是用多次规划解决来解决。对于只有正常样本的特殊问题[3,4],支持向量机也可以能得到很好应用目前支持向量机广泛应用于模式识别[5,6],故障诊断[7,8]以及回归问题[9],针对用组合多个支持向量机用于多分类使用特点,本文使用改进粒子群算法确定支持向量机的树形结构以及参数选择,可以减少训练的支持向量机总数数,减少测试历遍的支持向量机个数。
1 线性支持向量机基本原理
支持向量机(support vector machines, SVM)基本原理是在特征空间上的间隔最大的线性分类器。二分类SVM学习的基本想法是求解能几何间隔最大的分类超平 面。满足 即为分类超平面。对于线性可分的数据集来说,满足条件的分类平面并不唯一,但满足最大间隔分类平面只有一个,是唯一的,这个满足最大间隔的平面就是支持向量机。
2 非线性SVM 算法原理
对于数据集为非线性可分的问题,通过变换将数据集映射到高维空间中,在高维空间实现线性分类。对于寻找支持向量并不需要将实际数据在高维空间真实映射值,而是用核函数运算替换当中的内积。核函数实际表示为通过映射变换后的两个实例间的内积。主要常用核函数有多项式核函数,高斯核函数以及径向基核函数。因为径向基核函数需要参数较好,泛化能力强,因本文使用的支持向量机采用径向基核函数,需要设置两个参数C以及δ。
3 支持向量机多分类问题
原始支持向量机只能解决两分类问题,但实际应用用上,我们通常遇到分类问题都是分类总数大于两类的多分类问题,用支持向量机解决多分类问题有用组合多个二 分类的分类器或直接用多次规划直接解决多分类问题的方案两种方案,因为随分类数量的增加多次规划的复杂程度急剧上升,因此一般采用组合多个支持向量机的方法来解决多分类问题。常用的组合方法有一对一[10],一对多[11]以及决策树[12]方法。
一对一类方法(one-against-one),针对 N 类分类问题,在每两类样本之间构建一个支持向量机,N 类问题需要构建 N *(N-1) /2 个支持向量机,预测时对结果进行投票,判定得票最多的类别为预测类别,该方法有分类精度较高的优点,但是需要训练的支持向量机数量较多,测试需要历遍所有支持向量机,因此在分类数量较多情况下还有,测试速度较慢。
类对余类(one-against-all),把单个类别数据作为正类,其他数据作为负类,构建 N 个支持向量机,测试时那个分类器出正类结果则预测为哪一个分类,该方法有结构较简单,所需支持向量机数量比一对一方法大幅度减少,测试速度较快,但由于训练时存在正负类样本数量不平均的问题,造成分类精度比一对一方法普遍较低,同时也存在多个分类器同时预测为正类,导致分类失败的问题。
决策树方法,通过把多分类先分成成两类,然后再把子类继续分成两类,直到每个子类都不可分为止。该方法所需的支持向量机数量也较少,而且测试时不用历遍所有的支持向量机,因此分类速度较一对一方法有很大的提升,但是根节点的错误会累积到下一级,因此分类精度依赖树形结构的顺序。
4 基于决策树的支持向量机多分类
二叉树支持向量机 Sungmoon 等人在 2004 年文献[13]提出了二叉树(Binary tree architecture,BTA )支持向量机的概念,通过多次聚类确定决策树结构测试速度及准确率都有提高,但方法比较复杂。文献[14]还提出了一次分离一个种类的偏二叉树的方法,利用构建样本超球半径对分离顺序进行确认,减少了误差积累,方法运用复杂,而且偏二叉树存在样本不平均的问题,文献[15]提出利用分层聚类后构建完全二叉树,但方法计算复杂。对二叉树,完全二叉树具有平均分类历遍较少,最高历遍次数稳定的特点,对分类数量K=2n(n 为正整数,n≥2)都可以对应形成满二叉树,比如一个针对一个8 分类的样本,对一对一方法要构建 8*7/2=28 个支持向量机,每次测试要调用所有的28 个支持向量机;对一对多,要构建8 个支持向量机,支持向量机个数较少,但测试要调用所有的支持向量机影响测试速度;对偏二叉树,每次分离一个故障类型,要构建7 个支持向量机,平均测试历遍次数为3.5 个,最坏情况为7 个;对完全二叉树,需要构建三层7 个支持向量机,所有的测试历遍为3 个支持向量机,对2n 1.定义适应度函数,这里适应度为支持向量机的分类准确率,包括训练集和测试集。 2.定义编码,速度初始化。对n 分类,设置粒子编码为 n+2 维,前n 维为离散编码,取值为-1 或1,位数代表类别,-1 代表该位数对应的的类别划分为负类,取 1 代表该位数对应的的类别划分为正类,比如对一个有 n=8分类的数据,则定义 X 为一个 n+2=10 维的向量,X=-1,1,1,-1,1,-1,-1,1,2.1,0.4 则代表第 1、4、6、7 种故障类型为负类,2、3、5、8 为正类,C=2.1,δ=0.4。,对 n 为偶数则平均分配正负类即办一半类别划为正类,一半类别划到负类。若n 为奇数,则统一将负类数为(n-1)/2 个,正类数为(n+1)/2 个,第n+1 位为径向基函数C,第n+2 位为惩罚因子δ。根据编码对粒子群初始化,对粒子群的开始速度及位置进行随机初始化,计算初始适应度。 3.根据公式(1)(2)更新 n+1,n=2 维粒子群位置,其中Pit第i 维粒子个人最优解,Ptg 为当前粒子找到的全局最优解。c1r1、c2r2为学习权重系数,ω为惯性权重系数,按公式(3)进行更新,ω随着迭代次数逐渐变小,保证算法在初期有较强能力走出局部最小值进行全局搜索,后期加强局部搜索更快收敛。对1 到n 维粒子,其为离散数据,因为粒子群算法对连续数据寻优编码容易,对离散编码较困难,因此用遗传算法对前n 维粒子进行操作。为保证正负类样本平均分,因此算法不改变正负类数目总数,对适应度即分类正确率后50%的粒子进行变异操作,对适应度较高的进行单点内部交叉,即对内部+1,-1 所在的位置随机选取一对交换顺序,对适应度较低的进行多点变异,交换总数控制在不大于 1/4*n 。对原粒子及变异粒子按适应度排列选择为新一代种群。 vit+1 = ωvit + c1r1(Pit − xit) + c2r2(Ptg-xit)(1) xti+1 = xit + vit+1(2) ω = ωmax − t( Δωmax-ωωmin) (3) 4.计算适应度判断是否达到最大迭代次数或达到适应度要求,没有达到则继续更到新下一代。5.适应度达到程序要求或算法迭代次数达到设定的最大次数,则停止迭代输出最优解。 图1 带通滤波器 5 仿真实验 利用模拟电路的故障以及正常模式进行仿真试验,如图1 所示的带通滤波器电路中,因为模拟电路元件有容差存在,因此一般利用仿真元件对其中电容电阻进行容差处理,本文对电阻、电容设置3%的容差,经过试验发现 R2,R3,C1,C2 参数变化对电路输出比较敏感,对电路设置 R2↑,R3↑,R3↓,C1↓,C1↑,C2↓,C2↑共 7类故障诊断,其中电阻、电容↑指电阻在标称值偏大一倍,↓指比标称值减少 50% ,7 种故障模式加正常模式一共8 种分类,用 Multisim 对电阻电容设置 3%的容差,对电路输入端接入 1V1000HZ 的交流电,对电路输出端在0.1-0.2S 以10ns 进行采样,进行每种分类进行仿真 50‰ ,其中 25 次结果用来训练,25 次结果用来测试,对仿真的结果进行五层小波得到小波分解系数,取每层系数平方和得六维特征系数,用改进粒子群算法寻找最佳分类方式以及径向基核函数的 C 和δ最佳值,以根节点为例编码设置X 为 10 维变量其中前八位为各类别的正负类分法,-1 代表为负类,1 代表为正类,后两位为SVM 的C 和δ取值,比如 X=-. 1,1,1,-1,1,-1,-1,1,2.1,0.4 则代表第1,4,6,7 种故障类型为负类,2,3,5,8 为正类,C=2.1,δ=0.4。取种群数为 20,最大迭代次数为 30 次,对 X 的前 8个变量,按遗传算法的进行迭代按下面公式公式 1 进行更新,对X 最后两个变量,按标准粒子群进行迭代,按下面公式2 进行更新,权重系数 ωmax=0.9 , ωmin=0.4 ,按公式3 进行更新。粒子按上文表述方法更新适应度与迭代次数,如下图2 所示算法在15 代得到最优解,1,3,4,7 为负类,2,5,6,8 为正类 c=2.41,δ=0.79,分类正确率为 99.5% 。 图2 根节点收敛曲线图 同样方法能得到整个分类朴树,分类总正确率为 97% ,每种故障只要历遍三个支持向量机就可以得到诊断结果,用偏二叉树得到诊断正确率为 92% 。试验结果表明改进的基于故障树的支持向量机具有分类朴树结构简单,分类精度高,测试历遍支持向量机个数少,测试速度快的特点。 参考文献 [1] Vapnik V N.Statistical learning theory[M]. New York:Wiley, 1998. [2] Vapnik.V N.overview of statistical learning theory[J].IEEE transactions on Networks,1999,10(5):988-999. [3] 张万旋,张箭,卢哲等,火箭发动机故障检测的快速增量单分类支持向量机算法,国防科技大学学报[J]2024,46(2),115-118. [4]朴泰圣,赵庆英,范国宇等.基于蜂群优化的单类支持向量机在多元地球化学异常识别中的应用.世界地质[J].2025,44(1): 131-141. [5] 基于改进支持向量机的动态多点手势动作识别方法, 张科星, 何江, 吉林大学学报( 信息科学版)[J], 2025,43(3):583-590. [6]基于多分类支持向量机的变压器在线监测数据错误模式识别,何宁辉,吴旭涛,张佩等,高压电气[J].2024,60(7)173-180. [7]基于改进联合分布适配和支持向量机的谐波减速器故障诊断,石超,刘彪,郭世杰等, 机电工程[J]2025,42(8):441-450. [8]基于支持向量机和遗传算法优化的机载雷达故障诊断分析,戴宇航,电子质量[J]. 2025,420(7)8-13 [9] 基于红狐优化支持向量机回归的船舶备件预测,孟冠军, 杨思平 ,钱晓飞,合肥工业大学学报(自然科学版)[J]2025,48(1):25-31. [10] Krelel U.Pairwise classification and support vector machines[M].Cambridge,M A :M IT Press,199 9:255-268 [11] Bottou L , Cortes C , Denker J.Comparison of classifier methods : A case study in handwriting digitrecognition[C]//Proceedings Of International Conference on Pattern Recognition,1994:77-87. [12] Melgani F , BruzzoneL . Classification of hyperspectral remote sensing images with support vector machines[J].IEEE Transactions on Geosciences and Remote Sensing,2004,42(8):1778-1790. [13] Cheong Sungmoon Sang Hoon Oh,Sooupport vect or machines with binary tree architecture for multi-class classification [J].Neural Information Processing-Letters and reviews,2004,2(3)47-51. [14] 刘健,刘忠,熊鹰,改进的多类分类算法研究,计算机工程与应用[J],2010,46(33):117-119. [15] 基于最优二叉树支持向量机的蜜柚叶部病害识别,张建华,孔繁涛,李哲敏等,农业工程学报[J],2014,30(19),222-231
