一种基于禁忌搜索算法优化支持向量机的方法

文档序号:6385563阅读:256来源:国知局
专利名称:一种基于禁忌搜索算法优化支持向量机的方法
技术领域
本发明涉及一种支持向量机优化方法,特别地,涉及一种基于禁忌搜索算法优化支持向量机的方法。
背景技术
由于支持向量机在众多领域应用广泛,其重要性日益凸显,而参数选择直接影响支持向量机识别目标性能的优劣。如何确定支持向量机的参数是研究支持向量机的重要内容,也就顺其自然成了研究热点。目前,有很多智能算法被用于支持向量机参数的优化,而禁忌搜索算法以其较高的求解质量和效率以及在诸多组合优化邻域显示出的强大的寻优能力得到人们越来越多的青睐。本发明将禁忌搜索算法用于支持向量机参数的优化,对禁忌搜索算法做了一些改进并基于标准数据集进行了测试,与基于结构风险上界的支持向量机参数选择相比表明本发明算法有较好地性能。禁忌搜索算法通过引入禁忌表和禁忌准则来避免迂回搜索,并通过特赦准则来赦免一些被禁忌的优良状态,进而保证多样化的有效搜索,最终实现全局优化。在文献题目:《基于结构风险上界的SVM参数选择》,作者:宋小杉,蒋晓瑜,罗建华,汪熙,科技导报2011,29(08)中,给出了结构风险上界的算法,提出了一种基于结构风险上界的SVM参数选择方法,可以得到使SVM泛化性较强的参数。但是支持向量机参数的选取至今仍然没有一个统一的标准,参数选取大多依靠经验采取试凑的方法,这样不仅费时而且很难得到满意的结果。

发明内容
在应用支持向量机解决具体问题时,首先考虑核函数的选取及参数的选择。虽然目前关于核函数在理论研究和应用上取得了一定的成果,但尚未形成指导支持向量机参数选取的理论。本发明要解决的技术问题是:针对现有支持向量机选取参数时的盲目性和低效率,提出一种基于禁忌搜索算法优化支持向量机的方法。通过该算法,能够更加有针对性和高效地选取支持向量机参数,通过禁忌搜索得到解空间内的近似最优参数,进而使得支持向量机的分类效果和全局寻优性能有一定程度上的提升。本发明是通过以下技术方案实现的:一种基于禁忌搜索算法优化支持向量机的方法,原始数据是经典的测试函数Shaffer’ s F6。第一步首先使用禁忌搜索算法对支持向量机的惩罚因子和核函数参数进行优化。具体分为以下几个部分来实现:第一步A,给定算法参数,随机产生初始参数C、Y ,初始化禁忌表并将tab设定为空,分别对全局最优解best_glo和局部最优解best_loc进行初始化,置逃逸状态es为O (即表明了初始处于非逃逸状态);
第一步B,判断算法终止条件是否满足。若是,则结束算法并输出优化结果;否则,继续以下步骤;第一步C,计算当前参数取到的次数,据此设定邻域半径jump ;第一步D,记录局部最优记录best_loc连续未更新的步数,如果这一步数超过了预先设定的阈值,可以认为当前解陷入局部最优。算法开始逃逸,探索得到逃逸点,加入逃逸候选集es_para,置逃逸状态es为I ;第一步E,判断是否处于逃逸状态(es = I),若是,邻域半径jump置为I,参数依次取逃逸候选集中的参数,否则,继续以下步骤;第一步F,基于邻域半径jump按照一定规则产生一定数量的邻域解,作为候选解;第一步G,通过SVM计算得到每个邻域解的适配值,即该解产生对应的分类正确率,将对解按照正确率从大到小排序;第一步H,依次对候选集中的元素做判断:看该参数对应的正确率是否大于局部历史最优记录,如果大于,则替换局部历史最优记录,更新禁忌表,将该解作为下一步搜索的起始点;否则,继续下面步骤;第一步I,判断该参数是否在禁忌表中,如果不在,加入禁忌表,将该参数作为下一步搜索的起始点;否则,判断下一个解;如果没有得到大于历史最优记录的或者不在禁忌表中的解,将最佳参数作为下一步搜索的起始点;第一步J,转步骤(1.B)。第二步,利用得到的近似最优参数训练得到最优支持向量机模型,并以此为基础对测试函数进行实验,验证支持向量机的分类性能和搜索全局最优解的能力,使用禁忌搜索算法优化过的支持向量机模型对待寻优函数和分类样本进行处理。本发明的有益效果在于:本发明使用禁忌搜索算法对支持向量机的参数进行优化,引入八网格法扩展了邻域解的结构,并对传统禁忌搜索的逃逸机制做了改进。从而实现了对支持向量机的分类模型进行了优化,降低了参数选择的盲目性和不准确。经过我们的方法改进,优化支持向量机在求解全局最优解的能力和分类效果都有一定的提升;而且,使用禁忌搜索算法选择支持向量机的参数,避免了传统支持向量机选取参数时的耗时费力缺陷,能够一次性准确地得到近似最优参数。本发明利用禁忌搜索算法对基于径向基核函数的支持向量机进行参数优化。对经典的禁忌搜索算法进行了扩展,邻域生成采用八网格法,并且能够自动调整。在不损失精度的情况下对算法的收敛速度进行了改善,并通过在局部最优处对周围的放射性探索,找到周围所有的局部最优解,从而实现尽可能的全局最优。对算法分别用测试函数和标准数据集进行了测试,结果表明改进过的算法能够有效地找到全局最优解,使得SVM有较高的分类正确率。


图1是本发明中禁忌搜索算法邻域解的结构图。图2是本发明求解函数最优解时所采用的函数Shaffer’ s F6。图3是本发明用于经典数据集分类时的准确率走向图。图4是本发明方法步骤流程图。
具体实施例方式下面结合实施例进一步描述本发明。本发明的范围不受这些实施例的限制,本发明的范围在权利要求书中提出。如图4所示:开始,随即设定参数,初始化记录,es = O ;计算参数频数,设jump ;计算局部最优记录未更新的步数,判断是否逃逸,如果是,则探索逃逸点,加入逃逸候选集,es = I,如果否,贝U,如果es = I,令jump = I,参数依次取逃逸候选集中的参数,es = O ;生成候选集,计算正确率;候选集元素按正确率从大到小排序;依次判断正确率是否大于局部最优,如果否,则需要是否判断完所有候选集元素,如果否,则需要重新判断正确率是否大于局部最优,如果是,则该解作为下一步起始点;更新局部、全局最优记录;加入禁忌表,第一个解作为下一步起始点,进一步判断是否满足终止条件,如果是,则介绍,如果否,则回到开始。具体地,禁忌搜索算法参数寻优设计,如下:第一步A,给定算法参数,随机产生初始参数C、Y,初始化禁忌表并将tab设定为空,分别对全局最优解best_glo和局部最优解best_loc进行初始化,置逃逸状态es为O (即表明了初始处于非逃逸状态);根据惩罚因子c和径向基函数g可能的取值范围,选取整数ce
,ge
。惩罚因子c和核函数参数、的变化范围分别是[O,100]和
。第一步B,判断算法终止条件是否满足。若是,则结束算法并输出优化结果;否则,继续以下步骤。本发明中禁忌搜索优化算法的终止规则设定如下:(I)设置一个最大迭代次数值,譬如可以是500代。当算法的运行次数达到该值以后,不论当前的搜索状态如何都要终止算法运行,返回迄今为止的最佳解和状态。(2)设定单个对象的最大禁忌频率值。为了避免回旋搜索,若算法运行过程中发生了某个状态、对应的函数适应度值其禁忌频率超过某一预先设定的数值(15次),则终止算法并返回结果。第一步C,计算当前参数取到的次数,据此设定邻域半径jump ;第一步D,记录局部最优记录best_loc连续未更新的步数,如果这一步数超过了预先设定的阈值,可以认为当前解陷入局部最优。算法开始逃逸,探索得到逃逸点,加入逃逸候选集es_para,置逃逸状态es为I ;第一步E,判断是否处于逃逸状态(es = I),若是,邻域半径jump置为I,参数依次取逃逸候选集中的参数,否则,继续以下步骤;第一步F,基于邻域半径jump按照一定规则产生一定数量的邻域解,作为候选解;第一步G,通过SVM计算得到每个邻域解的适配值,即该解产生对应的分类正确率,将对解按照正确率从大到小排序;第一步H,依次对候选集中的元素做判断:看该参数对应的正确率是否大于局部历史最优记录,如果大于,则替换局部历史最优记录,更新禁忌表,将该解作为下一步搜索的起始点;否则,继续下面步骤;第一步I,判断该参数是否在禁忌表中,如果不在,加入禁忌表,将该参数作为下一步搜索的起始点;否则,判断下一个解;如果没有得到大于历史最优记录的或者不在禁忌表中的解,将最佳参数作为下一步搜索的起始点;第一步J,转步骤(1.B)。第二步,使用禁忌搜索算法优化过的支持向量机模型对待寻优函数和分类样本进行处理,具体分为以下几个部分来实现:第二步A,基于经典函数的测试,验证所提出算法的全局寻优能力;Shaffer’s F6函数是J.D.Shaffer等提出的,表达式为
权利要求
1.一种基于禁忌搜索算法优化支持向量机的方法,原始数据是测试函数Shaffer’S F6其特征在于,包括以下步骤: (1),使用禁忌搜索算法对支持向量机的惩罚因子和核函数参数进行优化; (2),利用得到的近似最优参数训练得到最优支持向量机模型,并以此为基础对测试函数进行实验,验证支持向量机的分类性能和搜索全局最优解的能力。
2.根据权利要求1所述的基于禁忌搜索算法优化支持向量机的方法,其特征在于,所述的步骤(I)包括以下步骤: (1.A),给定算法参数,随机产生初始参数C、Y,置禁忌表tab为空, 全局最优记录best_glo,局部最优记录best_loc初始化,置逃逸状态es为O,即非逃逸状态; (1.B),判断算法终止条件是否满足;若是,则结束算法并输出优化结果;否则,继续以下步骤; (1.C),计算当前参数取到的次数,据此设定邻域半径jump ; (1.D),记录局部最优记录best_loc连续未更新的步数,如果一定步数之后局部记录仍未更新,认为当前解陷入局部最优,开始逃逸,探索得到逃逸点,加入逃逸候选集es_para,置逃逸状态es为I ; (1.E),判断是否逃逸状态,即es=l,若是,邻域半径jump置为1,参数依次取逃逸候选集中的参数,否则,继续以下步骤; (1.F),基于邻域半径jump产生其所有邻域解,作为候选解; (1.G),通过SVM计算得到邻域解对应的分类正确率,将解按照正确率从大到小排序;(1.H),依次对候选集中的元素做判断:看该参数对应的正确率是否大于局部历史最优记录,如果大于,则替换局部历史最优记录,更新禁忌表,将该解作为下一步搜索的起始点;否则,继续下面步骤; (1.1 ),判断该参数是否在禁忌表中,如果不在,加入禁忌表,将该参数作为下一步搜索的起始点;否则,判断下一个解;如果没有得到大于历史最优记录的或者不在禁忌表中的解,将最佳参数作为下一步搜索的起始点; (1.J),转步骤(1.B)。
3.根据权利要求1所述的基于禁忌搜索算法优化支持向量机的方法,其特征在于,所述的步骤(2)进一步使用禁忌搜索算法优化过的支持向量机模型对待寻优函数和分类样本进行处理,具体分为以下几个部分来实现: (2.A),基于经典函数的测试,验证所提出算法的全局寻优能力; Shaffer’s F6函数是J.D.Shaffer等提出的,表达式为.sin: ν'χ2 τ V-' - 0.5V iVrI = Q S —--------------------------------------------------------------------------------------------------------------------------------------------------------------- '■,y * [l + 0.0OiC.x-t'V2)]" 其中,自变量的取值范围为,[-100,100];利用Shaffer’s F6函数对提出的禁忌搜索算法进行测试,设定计算步数为100步,参数C e (-10, 10),,长c_step=0.01,Y e (-10,10),步长甲吕乱鞋帜=测试N次; (2.B),基于数据集的测试:在支持向量机的经典数据集上做实验,并与同类型方法做性能比较。
4.根据权利要求3所述的基于禁忌搜索算法优化支持向量机的方法,其特征在于,所述的步骤(2)为Shaffer’s F6函数在[-10,10]区间内,它有无限个局部极大点,只有一个(0,0)为全局最大,最大值为1,在此函数最大值周围有一个圈脊,它们的取值均为0.990283。
5.根据权利要求3所述的基于禁忌搜索算法优化支持向量机的方法,其特征在于,所述的步骤(2)中测试N次, 可以取N=IO次。
全文摘要
本发明涉及在应用支持向量机解决具体问题时,首先考虑核函数的选取及参数的选择。虽然目前关于核函数在理论研究和应用上取得了一定的成果,但尚未形成指导支持向量机参数选取的理论。本发明利用禁忌搜索算法对基于径向基核函数的支持向量机进行参数优化。对经典的禁忌搜索算法进行了扩展,邻域生成采用八网格法,并且能够自动调整。在不损失精度的情况下对算法的收敛速度进行了改善,并通过在局部最优处对周围的放射性探索,找到周围所有的局部最优解,从而实现尽可能的全局最优。对算法分别用测试函数和标准数据集进行了测试,结果表明改进过的算法能够有效地找到全局最优解,使得SVM有较高的分类正确率。
文档编号G06K9/62GK103164709SQ201210575338
公开日2013年6月19日 申请日期2012年12月24日 优先权日2012年12月24日
发明者苏华, 孙学梅 申请人:天津工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1