一种基于改进的粒子群算法的SVM分类器参数优化方法与流程

文档序号:16037042发布日期:2018-11-24 10:09阅读:2312来源:国知局

本发明涉及一种svm分类器参数优化方法,具体涉及一种基于改进的粒子群算法的svm分类器参数优化方法。

背景技术

核函数是影响svm分类器性能的关键因素。通常我们将核函数分为两类:局部核函数和全局核函数。前者的泛化能力较弱,学习能力较强,而后者的泛化能力较强,学习能力较弱。常用的核函数中,多项式核函数属于全局核函数,高斯核函数属于局部核函数。核函数的选择包括两个步骤:核函数的确定和核函数参数值的确定。

对于核函数的确定,传统的做法有两种。其一,利用专家的经验或先验知识预先选定核函数;其二,分别试用不同的核函数,选择表现较好的一个。上述两种做法存在较大的随机性,且需要依赖经验和先验知识,无法保证分类器的最优性能。

对于核函数参数值的确定,通常的解决办法包括两种。其一,通过交叉验证技术测试非训练样本在固定参数值上的分类错误率,然后不断修正参数,进而使得分类精度最高,但这种方法计算量较大;其二,通过尝试大量不同的参数以寻找最优的分类效果,但这种方法存在较大的随机性。



技术实现要素:

发明目的:为了克服现有技术的不足,本发明提供一种基于改进的粒子群算法的svm分类器参数优化方法,该方法可以解决分类器综合性能低,分类器的泛化能力差的问题。

技术方案:本发明所述的基于改进的粒子群算法的svm分类器参数优化方法,该方法包括以下步骤:

(1)对采集的样本数据进行10重交叉验证,从平均分类精度、测试精度和支持向量占比三个指标对比各个参数对分类器性能的影响,选择影响分类器性能的参数作为待优化参数;

(2)初始化分类器和粒子群算法的相关参数,根据所述相关参数更新粒子速度和位置;

(3)将步骤(1)中选定的待优化参数设置为粒子当前位置的相应维度值,并将所述10重交叉验证实验得到的平均分类精度、测试精度和支持向量占比应用到适应度值公式中,计算得到粒子当前位置对应的适应度值;

(4)根据所述粒子当前位置对应的适应度值进行粒子评估,更新所述个体最优位置和种群最优位置;

(5)若满足停止条件,则结束寻优,输出最优参数的组合,否则返回步骤(2)继续迭代寻优。

优选的,所述步骤(1)中,待优化参数包括:

多项式核函数权重a、多项式核参数d、高斯核参数g(g=σ2)和惩罚因子c。

优选的,所述步骤(2)中分类器和粒子群算法的相关参数包括:

svm样本集、粒子群规模、第i个粒子的初始位置(a,d,g,c)、第i个粒子的初始速度vi、初始惯性权重ω、最大迭代次数tmax、第i个粒子的个体最优位置pibest、种群最优位置pgbest以及适应度值公式中的各项权重ω1、ω2和ω3。

优选的,所述步骤(2)中,根据所述待优化参数更新粒子速度和位置具体方法为:

粒子速度更新公式是:

vid(t+1)=ωvid(t)+c1r1(pid(t)-xid(t))-c2r2(pgd(t)-xid(t))

其中,vid(t)表示第i个粒子的第d维在第t轮时的速度,xid(t)表示第i个粒子的第d维在第t轮时的位置,ω为惯性权重,c1,c2为学习因子,r1,r2为相互独立且均匀分布在[0,1]区间的随机数,pid(t)为第i个粒子在第t轮时的个体最优位置的第d维度值,pgd(t)为第t轮时的种群最优位置的第d维值;

粒子位置更新公式为:

xid(t+1)=xid(t)+vid(t)

其中,vid(t)表示第i个粒子的第d维在第t轮时的速度,xid(t)表示第i个粒子的第d维在第t轮时的位置。

优选的,所述步骤(3)中,适应度值公式为:

fitfunc2=ω1(1-avgtrainacc)+ω2(1-testacc)+ω3svratio

其中,avgtrainacc为所述平均分类精度,testacc为测试精度,svratio为支持向量占比,ω1、ω2和ω3为各项对应的权重。

有益效果:本发明与现有技术相比,其显著优点是:1、本发明改进了粒子群算法,并利用改进的算法完成了分类器相关参数的优化,克服了传统分类器在参数选择时过多依赖于自身经验、随机性较大等缺陷;2、优化之后的分类器在满足较高分类精度的同时也大大增强了其泛化能力,且可以根据具体应用场景调节分类精度和泛化能力的权重,增强了分类器的灵活性。

附图说明

图1为本发明所述的优化方法流程图。

具体实施方式

如图1所述,该方法首先选择待优化参数,先采集样本数据,对样本数据进行10重交叉验证实验。实验过程中,选择分类器的一个参数作为自变量,固定分类器的其他参数。实验完成后,从平均分类精度、测试精度和支持向量占比三个指标对比各个参数对分类器性能的影响,选择对分类器性能影响较大的若干参数作为待优化参数。

经过实验选择四个待优化参数,分别是多项式核函数权重a、多项式核参数d、高斯核参数g(g=σ2)和惩罚因子c。

然后到参数优化阶段,包括:

(1)初始化svm和粒子群算法的相关参数,包括svm样本集、粒子群规模、第i个粒子的初始位置(a,d,g,c)、第i个粒子的初始速度vi、初始惯性权重ω、最大迭代次数tmax、第i个粒子的个体最优位置pibest、种群最优位置pgbest和适应度值公式中的各项权重ω1、ω2和ω3。

(2)根据vid(t+1)=ωvid(t)+c1r1(pid(t)-xid(t))-c2r2(pgd(t)-xid(t))更新粒子的速度,根据xid(t+1)=xid(t)+vid(t)更新粒子的位置。

其中,vid(t)表示第i个粒子的第d维在第t轮时的速度,xid(t)表示第i个粒子的第d维在第t轮时的位置,ω为惯性权重,c1,c2为学习因子,r1,r2为相互独立且均匀分布在[0,1]区间的随机数,pid(t)为第i个粒子在第t轮时的个体最优位置的第d维度值,pgd(t)为第t轮时的种群最优位置的第d维值。

(3)将分类器的各个参数设置为粒子当前位置的相应维度值,并将样本经交叉验证实验得到的平均分类精度avgtrainacc、测试精度testacc和支持向量占比svratio代入至fitfunc2=ω1(1-avgtrainacc)+ω2(1-testacc)+ω3svratio,计算得到粒子当前位置对应的适应度值。

(4)根据步骤(3)中得到的适应度值评估粒子,更新个体最优位置pibest和种群最优位置pgbest。

(5)若满足停止条件则结束寻优,输出最优参数组合,否则返回步骤(2)继续迭代寻优。停止条件通常是预设最大迭代次数或较好的适应度阈值。

对于最大迭代次数的设置,通常根据实际需要选择,没有固定值,一般20-30次即可,也可以设置为100次左右。

对于适应度阈值的设置,通常将实际需要达到的avgtrainacc、测试精度testacc和支持向量占比svratio代入至适应度值公式fitfunc2=ω1(1-avgtrainacc)+ω2(1-testacc)+ω3svratio,得到的结果就是适应度阈值。比如,在某种应用场景下,我们需要达到90%以上的分类精度,90%以上的测试精度,并要求支持向量占比不高于20%,则此时avgtrainacc=90%,testacc=90%,svratio=20%,将三者带入适应度值公式即可求得适应度阈值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1