GSVM优化问题的调节熵函数法
基于GA-SVM的高压输电线路弧垂预测模型

基于GA-SVM的高压输电线路弧垂预测模型姬波;杨文东;张驰;卢红星;安致嫄【摘要】导线弧垂是反映输电线路运行状态的重要参数之一,为了预知和预警高压输电线路弧垂的变化,提出了一种基于遗传算法(genetic algorithm,GA)特征自适应赋权的支持向量机(support vector machine,SVM),预测输电线路弧垂的方法(GA-SVM).该方法主要分为两个阶段,首先使用GA对实验数据自适应赋权,以突出重要属性,抑制冗余或次要属性,然后使用SVM预测输电线路弧垂.实验结果表明,该方法在预测输电线路弧垂方面是可行有效的,并且优于贝叶斯(Bayes)算法、K-最近邻算法(KNN)、决策树算法和BPNN神经网络算法.【期刊名称】《郑州大学学报(理学版)》【年(卷),期】2018(050)004【总页数】7页(P94-100)【关键词】输电线路;弧垂;遗传算法;特征赋权;支持向量机【作者】姬波;杨文东;张驰;卢红星;安致嫄【作者单位】郑州大学信息工程学院河南郑州450001;郑州大学信息工程学院河南郑州450001;郑州大学信息工程学院河南郑州450001;郑州大学信息工程学院河南郑州450001;国网河南省电力公司信息通信公司通信运行部河南郑州450000【正文语种】中文【中图分类】TP391.40 引言高压输电线路的弧垂是反映线路安全运行的重要参数,也是输电线路在线监测和动态增容重点关注的指标之一[1-2],当前国内外都非常重视输电线路弧垂的监测研究. 现有弧垂的监测方法主要有:图像技术法[3],GPS监测法[4],倾斜角法[5]以及通过导线温度和应力测量弧垂[6-7]等. 但是,除了实时监测弧垂变化外,预知和预警弧垂变化也是一个亟待解决的问题,目前还未见有这方面相关的研究.SVM是一种基于统计学习理论的机器学习算法,已被广泛应用到现代经济和工业领域中[8]. 文献[9]通过支持向量回归算法建立股票分析模型,对股票价格进行预测分析.文献[10]应用支持向量机算法对混凝土抗压强度进行预测.文献[11]采用支持向量回归算法对山西月度最大电力负荷进行预测.文献[12]进行项目控制预测. 因为线路运行的电压、电流、导线的温度,以及周围环境的温度、风速、湿度等都会造成输电线路弧垂的变化[13]. 本文提出一种基于GA特征自适应赋权的SVM预测高压输电线路弧垂的方法(GA-SVM). 该方法主要分为两个阶段:1) 根据每个属性对弧垂影响的重要程度不同,使用GA自适应对特征赋权,以突出重要属性,抑制次要或冗余属性. 2) 以第一阶段处理过的数据作为SVM的输入,对弧垂进行预测分析. 实证研究表明,本文提出的基于GA-SVM预测高压输电线路弧垂的方法是可行和有效的,并且其预测精度优于Bayes算法、KNN算法、决策树算法和BPNN神经网络算法.1 背景1.1 输电线路弧垂输电线路任一点的弧垂是指该点与悬线两端连线的铅锤距离,通常所说的弧垂是指一个档距导线段的最大弧垂. 输电线路的弧垂是线路设计和安全运行的重要指标,弧垂过小,会导致输电线应力过大,影响输电线路的机械安全;弧垂过大,将导致输电线距离地面太低,会造成对地放电的危险. 因此必须保证弧垂在规定的安全范围内.1.2 支持向量机SVM在构造最优分类超平面时,采用迭代训练算法来减小误差函数. SVM分类模型可以描述为一个数学优化问题,所用公式为(1)其中:w为权值向量;c是惩罚系数;ξ是处理不可分数据时的松弛变量;b是偏置量;φ(x)是一个非线性的映射函数,将输入样本映射到高维特征空间.最终,求得SVM分类决策函数为其中K(x, y)是核函数.常用的核函数有多项式核函数、Sigmoid核函数、径向基核函数等. 本文采用径向基核函数,K(x,y)=e-‖x-y‖2/2σ2.2 基于GA-SVM的高压输电线路弧垂预测模型2.1 离散化方法输电线路弧垂是连续属性,但有时候预测弧垂属于哪一个范围比预测弧垂的确切值更有意义. 所以本实验采用等宽离散化方法把弧垂离散化为N个区间.等宽离散化方法是一种典型的无监督离散化方法,是将属性的值域划分为具有相同宽度区间.等宽离散化算法过程如下所示.输入:属性A,A的个数为M,离散区间个数为N;输出:离散化后的属性为F.1) 计算A的最大值MAX和最小值MIN.2) 计算属性A的离散区间宽度W=(MAX-MIN)/N.3) F=A4) For i in M do5) For j in N do6) If Ai<=MIN +j*W7) Fi=j8) Else9) Continue10) End11) End12) Return F.2.2 特征变换特征(属性)变换是指用于属性变量的全体或部分的变换. 主要包括两种变换类型:函数变换和标准化(规范化). 函数变换是指用一个简单数学函数分别作用于变量的每一个值. 假设x是属性变量,常用的函数变换有xk、log (x)、sin (x)、tan (x)、1/x等. 标准化的目的是使属性整体值的集合具有特定的性质. 特征变换的主要作用包括:1) 将不具有正态分布的数据变换为正态分布;2) 避免较大值域的变量左右计算结果. 根据实验数据分布特征,本文采用标准化变换,所用公式为其中:为均值;s为均方差. 创建了1个具有均值为0和标准差为1的新变量x′.为了与标准化变换方法的实验效果对比,本文给出max-min变换法和反正切函数变换法. max-min变换法为x′=(x-Minvalue)/(Maxvalue-Minvalue),变化后的值域为[0,1];反正切函数变换法为x′=(2arctan (x))/π,变换后的值域为[-1, 1].2.3 基于GA特征自适应赋权特征权重可以有效提高模型的精确度[14-15]. 特征权重是对数据的各个特征赋予不同的重要程度,从而达到突出重要特征,抑制次要特征或冗余特征.主要有以下3种方法:1) 单一权重方法赋权;2) 综合权重方法赋权;3) 自适应赋权. 自适应赋权是一种客观的赋权方法,不需要人为干预,能更有效地搜索重要特征,抑制次要特征或冗余特征提高模型精度[16-17]. 本文采用基于GA的特征自适应赋权方法. GA是一种求解问题高效并行的全局自适应搜索方法[18],以自然选择和遗传理论为基础,在搜索过程中自动获取和积累有关搜索空间知识,并自适应地控制搜索过程以求得最优解. 利用遗传算法实现特征自动赋权步骤如下.1) 基因编码. 本文采用表达精确的浮点数编码方法.2) 种群初始化. 随机生成M个染色体组成一个群体,群体内个体的数量即是群体规模,每个初始个体即表示问题的初始解.3) 计算个体的适应度. 适应度函数是唯一评价个体好坏的标准. 在GA寻优过程中,一个良好的适应度函数能够指导寻优的方向. 为了保证GA能搜索到最优的特征权值,定义的适应度函数为Fitness=N′/N,其中:N′表示进行特征赋权后,能够正确分类训练实例的个数;N表示用于训练实例的总个数.4) 选择. 选择的目的是从当前种群中选出优良的个体为父代. 根据个体的适应度,适应度大的个体被选中的概率大. 本文采用轮盘赌方法选择优良的个体,设种群的大小为M,每个个体的适应度为Fi,则个体i被选中的概率为5) 交叉. 交叉是遗传算法中最主要的遗传操作,且是产生新个体的主要方式之一.本文采用分散交叉法.6) 变异. 变异是模拟生物进化中的基因突变,它使GA在接近最优解邻域时能够加速向最优解收敛. 本文选用高斯函数作为变异函数.为了对比实验效果,本文在此给出另外两种经常使用的特征赋权方法:互信息权重和熵权重. 互信息是信息论中对有用信息的度量,可以看作一个随机变量中包含的另一个随机变量的信息量,包含的信息量越多则权重越大;熵是对信息不确定性的度量,不确定性越大熵值越高,则权重越大. 实验数据集的属性集合为{X1,X2,…,Xn},类标属性为Y,令p(xi)为属性Xi的概率分布,p(xi, yi)为属性Xi和Yi之间的联合概率分布,m为属性的个数. 则属性的互信息权重为熵权重为2.4 GA-SVM预测高压输电线路弧垂方法本文所提出的输电线路弧垂预测模型是一个多阶段的过程:包括数据的特征变换,GA特征自适应赋权,支持向量机预测弧垂,性能评价. GA-SVM预测输电线路弧垂算法过程如下.输入:训练数据集Train_set,测试集Test_set;输出:弧垂预测值L.1) 使用标准化特征变换方法处理训练数据集Train_set,得到Train_set1.2) 使用遗传算法自适应计算Train_set1的特征权重,得到Train_set2.3) 使用Train_set2作为SVM的输入,训练SVM.4) 把测试集Test_set输入到训练好的SVM模型中.5) 得到弧垂预测值L.3 实验3.1 实验数据集实验数据取自郑州市某电力公司,共1 502条记录,每条记录包括6个属性:输电线路温度、环境温度、环境风速、环境湿度、载荷电流、输电线路弧垂. 本实验以前5个属性作为GA-SVM算法的输入属性,输电线路弧垂作为预测属性.3.2 实验性能评估方法实验评估中采用10次十折交叉验证结果的平均正确率,作为GA-SVM预测输电线路弧垂方法的效果评估方法.十折交叉验证方法将数据集随机分成10份,轮流将其中1份作为测试集,另外9份合并作为训练集. 平均正确率的计算方法为其中:m为十折交叉验证次数;n为实验次数;rightnum为测试集中正确分类的记录数目;num为测试集中的总记录数目.3.3 实验结果在本实验中,使用台湾大学林智仁教授开发的LIBSVM工具箱进行输电线路弧垂预测. 其中,支持向量机类型选择c-SVC,核函数选择径向基函数,惩罚系数c和内核参数g使用网格搜索算法进行寻优. 网格搜索算法是支持向量机参数寻优常用的一种方法,它将待选取的参数限定在一定的取值范围内,然后将参数按一定的步长分割成一个个网格,同时按次序遍历网格内的所有点,从而获取最优参数组合. 网格搜索算法得到的最优参数组合为:惩罚系数c=2 048,内核参数g=0.007 812 5.3.3.1 不同离散化区间个数的实验结果表1给出了5种不同等宽离散化区间个数的10次十折实验结果. 从表1可以看出,随着类标属性离散化区间个数的增加,输电线路弧垂的预测准确率逐渐下降. 弧垂离散化为3箱的10次十折平均预测准确率为76.68%,比离散化为7箱的平均预测准确率59.95%高16.73%. 但是较少的区间划分不能充分反应弧垂的变化,而较多的区间划分准确率又太低. 所以综合考虑输电线路弧垂的分布状态,本实验把弧垂等宽离散化分为5个区间.3.3.2 特征变换后的实验结果表2给出了4种特征变换的10次十折实验结果,包括未进行特征变换的SVM方法,MAX-MIN特征变换的SVM方法,反正切特征变换的SVM方法和标准化特征变换的SVM方法. 从中可以看出:1) 未进行特征变换的SVM方法10次十折平均正确率是71.38%,比MAX-MIN 特征变换和反正切特征变换的SVM方法平均正确率分别高11.91%和13.16%,比标准化特征变换的SVM方法平均正确率75.10%低3.72%. 这说明合理的特征变换能够提高弧垂的预测精度,不当的特征变换则降低预测精度.2) 标准化特征变换的SVM方法10次十折平均正确率最高,比未进行特征变换的SVM方法提高3.72%,比MAX-MIN特征变换和反正切特征变换的SVM方法分别提高15.63%和16.88%. 这说明本文采用的标准化特征变换方法能够更加准确地描述实验数据特征,从而提升弧垂的预测正确率.表1 5种不同离散化区间个数的实验结果对比Tab.1 Experimental resultscomparison of five different discre-tization intervals %实验次数34567176.36 75.44 70.57 64.11 59.99 276.63 75.37 70.70 63.84 59.72 377.49 76.03 71.24 64.72 59.59 477.23 74.71 71.51 64.38 59.52 575.83 73.96 71.77 64.25 60.65 676.96 75.03 72.63 63.71 60.65 776.57 75.43 71.64 64.45 59.19 876.70 74.90 71.30 65.31 59.46 976.70 75.64 70.83 63.51 60.25 1076.30 75.23 71.57 64.72 60.46 AVG76.68 75.17 71.38 64.30 59.95表2 4种不同特征变换方法的实验结果对比Tab.2 Experimental results comparison of four different feature transformation methods %实验次数未变换MAX-MIN变换反正切变换标准化变换170.57 59.6558.26 75.90 270.70 59.3257.79 74.70 371.24 59.7858.66 74.96 471.51 59.6558.05 74.43 571.77 59.5258.39 75.43 672.63 59.1258.05 75.70 771.64 59.7258.45 74.90 871.30 59.4558.19 74.83 970.83 59.2657.52 75.10 1071.57 59.1958.79 75.03AVG71.38 59.4758.22 75.103.3.3 特征加权后的实验结果上述实验说明本文提出的标准化特征变换是最佳的特征变换方法,在此基础上,我们采用特征加权方法对实验数据赋权,以突出重要属性,抑制冗余或次要属性. 表3给出了标准化特征变换并加权后的实验结果. 从表3中可以看出:GA自适应特征赋权方法10次十折实验平均正确率最高,比未加权方法提高2.68%,比熵权重方法提高3.32%,比互信息权重方法提高3.5%. 这说明GA自适应特征赋权方法能够进一步突出重要属性,抑制冗余或次要属性,从而提高SVM预测输电线路弧垂的精度.为了更详细地分析特征权重对实验结果的影响,在图1和图2中分别给出了10组十折实验的第1组和第2组GA权重、互信息权重和熵权重的正确率曲线. 可以看出:表3 标准化特征变换并加权后的实验结果对比Tab.3 Experimental resultscomparison of standardized feature transformation and weighting %实验次数未加权熵权重互信息权重GA175.90 73.44 74.16 77.23 274.70 74.57 73.96 77.90 374.96 74.43 73.97 77.89 474.43 74.30 73.97 78.10 575.43 74.83 75.10 78.56 675.70 74.90 73.50 77.77 774.90 74.83 74.23 77.50 874.83 74.09 74.90 77.36 975.10 74.37 74.70 78.10 1075.03 74.84 74.30 77.43 AVG75.10 74.46 74.28 77.781) 在第1组的10个数据集上,GA权重在其中的6个数据集上优于互信息权重,在1个数据集上等于互信息权重,在2个数据集上低于互信息权重;GA权重在其中的7个数据集上优于熵权重,在3个数据集上低于熵权重.2) 在第2组的10个数据集上,GA权重在其中的8个数据集上优于互信息权重,在1个数据集上等于互信息权重,在1个数据集上低于互信息权重;GA权重在其中的9个数据集上优于熵权重,在1个数据集上低于熵权重.3) GA权重的效果在总体上优于互信息权重和熵权重,更适合用于本实验数据集进行特征赋权,以突出重要属性,抑制冗余或次要属性.图1 第1组3种特征权重方法正确率曲线对比Fig.1 Correctness curve comparison of three kinds feature weighting methods in the first group图2 第2组3种特征权重方法正确率曲线对比Fig.2 Correctness curve comparison of three kinds feature weighting methods in the second group 3.3.4 与其他机器学习算法实验对比为了验证本文所提出方法的有效性,图3给出了贝叶斯算法、KNN算法、决策树算法、BPNN神经网络算法和本文提出的GA-SVM方法的10次十折实验的正确率对比柱状图. 贝叶斯算法输入特征离散化采用等宽离散化方法,图中所示Bayes_9表示将每个属性分别离散为9箱后的实验结果. KNN算法的输入属性采用标准化方法变换,图中所示KNN_9表示KNN算法采用9近邻. 图中所示Tree表示决策树采用CART算法. BPNN神经网络采用3层网状结构,5个输入节点,10个隐藏层节点,5个输出节点,激活函数选用logsig和purelin,网络训练函数选用traingdm. 图中所示BPNN_0.3表示神经网络采用0.3作为学习速率训练BPNN模型. 从图3中可以看出,参与比较的5种算法中,本文所提出的GA-SVM算法预测输电线路弧垂的10次十折正确率均是最优,且明显高于其他4种算法.图3 5种算法最优结果对比Fig.3 Five algorithms optimal results comparison 4 结束语针对在预测高压输电线路弧垂方面,还未见有相关的研究,本文提出一种基于GA 特征自适应赋权的SVM预测高压输电线路弧垂方法(GA-SVM). 该方法首先使用GA给实验数据自适应赋权,以突出重要属性,抑制冗余或次要属性,然后再使用SVM预测输电线路弧垂. 实证结果表明,本文提出的GA-SVM预测输电线路弧垂的方法是可行有效的,并且优于Bayes算法、KNN算法、决策树算法和BPNN 算法. GA-SVM算法模型还有一些不足和待完善的地方,如引入更多和输电线路相关的属性特征,研究不同的SVM参数选择方法对实验精度的影响等.参考文献:【相关文献】[1] 王红斌,陈扬,高雅,等. 输电线路弧垂对动态增容的影响[J].华北电力大学学报(自然科学版),2014, 41(2): 41-46.[2] 王孔森,孙旭日,盛戈皞,等. 架空输电线路导线弧垂在线监测误差分析及比较方法[J].高压电网,2014,50(4):27-34.[3] 王礼田,邵凤莹,萧宝瑾. 基于双目视觉稀疏点云重建的输电线路弧垂测量方法[J].太原理工大学学报, 2016,47(6):747-751.[4] 董晓虎,易东. 基于北斗卫星差分定位技术的输电线路弧垂监测[J].电子设计工程,2015,23(19):41-42.[5] 陈思明,闫斌,周小佳,等. 基于倾角的输电线路弧垂三维模型算法研究[J].计算机应用与软件, 2014,31(3):82-84.[6] 姚陈果,张磊,李成祥,等. 基于力学分析和弧垂测量的导线覆冰厚度测量方法[J].高电压技术, 2013,39(5):1204-1209.[7] 张江华. 高压输电线路弧垂在线监测研究[D].武汉:华中科技大学,2012.[8] SUGANYADEVI M V, BABULAL C K. Support vector regression model for the prediction of loadability margin of a power system[J]. Applied soft computing, 2014,24:304-315. [9] WANG J Z, HOU R, WANG C,et al. Improved v-support vector regression model based on variable selection and brain storm optimization for stock price forecasting[J]. Applied soft computing, 2016,49:164-178.[10] 靳江伟, 董春芳, 冯国红. 基于灰色关联支持向量机的混凝土抗压强度预测[J].郑州大学学报(理学版), 2015,47(3):59-63.[11] 尹立. 基于支持向量机的某区域电网电力需求的预测研究[D].北京:北京交通大学, 2014.[12] WAUTERS M, VANHOUCKE M. Support vector machine regression for project control forecasting [J]. Automation in constuction, 2014,47:92-106.[13] MALHARA S, VITTAL V. Mechanical state estimation of overhead transmission lines using tilt sensors[J]. IEEE transactions on power systems, 2010,25(3):1282-1290.[14] DIALAMEH M, JAHROMI M Z. A general feature-weighting function for classification problems[J].Expert systems with applications, 2017,72:177-188.[15] 姬波. 信息瓶颈方法的特征权重研究[D].郑州:郑州大学, 2013.[16] PHAN A V, NGUYEN M L, BUI L T. Feature weighting and SVM parameters optimization based on genetic algorithms for classification problems[J]. Applied intelligence, 2017, 46(2):455-469.[17] PENG L Z, ZHANG H L, ZHANG H B,et al. A fast feature weighting algorithm of data gravitation classification[J]. Information sciences, 2017, 375:54-78.[18] 田晋跃, 王晨阳, 李得志. 基于遗传算法的某工程车辆起步特性研究[J].郑州大学学报(理学版), 2016, 48(2):121-126.。
熵效应矫正方法

熵效应矫正方法是在计算化学和物理领域中用于修正分子或原子间相互作用能的一种方法。
它考虑了系统中粒子的熵贡献,以提高计算结果的准确性。
在分子动力学模拟或量子力学计算中,通常使用势能函数来描述分子或原子之间的相互作用。
然而,传统的势能函数往往无法完全捕捉到粒子之间的全部相互作用,尤其是在高温或高压条件下,熵效应对系统行为的影响变得更加重要。
为了纠正这种不足,可以采用以下几种常见的熵效应矫正方法:
1.经验修正:基于实验数据的经验修正方法通常通过调整势能函数的参数来纠正熵效应。
这些参数可以根据实验测量值进行优化,以最好地匹配实验结果。
例如,通过增加修正项来模拟溶液中的自由体积或溶剂效应。
2.热力学积分:熵效应可以通过对配分函数进行热力学积分来估计。
这种方法将系统的每
个可能状态的熵贡献累积起来,并与势能函数结合以获得更准确的自由能或相对稳定性。
3.高级量子力学方法:一些高级量子力学方法,如密度泛函理论(DFT)和耦合簇方法
(CCSD(T)),可以直接考虑到熵效应,并提供更准确的结果。
这些方法往往比传统的经验修正方法更复杂和计算密集。
需要注意的是,熵效应矫正方法的选择取决于具体的研究目标和可用的计算资源。
不同方法之间的精确程度和计算成本也会有所不同。
因此,在使用熵效应矫正方法时,建议根据研究需求和实际情况选择最适合的方法。
遗传算法优化svm参数

遗传算法优化svm参数遗传算法是一种基于自然适应性进化理论的优化算法,它通过模拟自然界中的进化过程,通过遗传算子(交叉和变异操作)对个体进行进化和选择,以找到最优解决方案。
支持向量机(Support Vector Machine,SVM)是一种非常有效的分类算法,通过在数据集中找到最有代表性的样本点,构建超平面分离不同类别的样本。
优化SVM的参数可以提高分类的准确率和稳定性。
下面是使用遗传算法优化SVM参数的一般步骤:1. 确定优化目标:首先明确需要优化的SVM参数,如惩罚系数C、核函数类型和参数、松弛变量等,这些参数会影响模型的性能。
2. 设计基因编码:将待优化的参数映射为基因的编码形式,可以使用二进制、整数或浮点数编码。
例如,某个参数的取值范围为[0, 1],可以使用浮点数编码。
3. 初始化种群:随机生成初始的种群,每个个体都表示一个SVM参数的取值组合。
4. 适应度评估:使用训练集对每个个体进行评估,计算其在测试集上的准确率或其他指标作为个体的适应度。
5. 选择操作:根据适应度排序或轮盘赌等策略,选择优秀个体进行遗传操作。
6. 交叉操作:从选中的个体中进行交叉操作,生成新的个体。
可以使用单点交叉、多点交叉或均匀交叉等策略。
7. 变异操作:对生成的新个体进行变异操作,引入随机扰动,增加种群的多样性。
变异操作可以改变某个基因的值或重新随机生成某个基因。
8. 更新种群:将交叉和变异生成的个体合并到种群中。
9. 重复步骤4-8,直到满足终止条件(如达到最大迭代次数或种群适应度不再改变)。
10. 选择最优个体:从最终的种群中选择适应度最好的个体作为最优解,即SVM的最优参数。
通过以上步骤,遗传算法可以搜索参数空间,并找到最有解决方案。
通过尝试不同的参数组合,可以优化SVM模型的性能。
请注意,以上只是一般的遗传算法优化SVM参数的步骤,实际应用中可能会根据具体问题进行适当的调整。
在实际操作中,还可以通过引入其他优化技巧(如局部搜索)来进一步提高搜索效率。
基于NGA优化SVM的滚动轴承故障诊断

熵、 S V M 和小 生境 遗传 算法( N G A) , 提 了一种 基于 N G A优化 S V M 的滚动轴承故 障诊断方法 。该方 法采用容错 性强 的 S h a n —
n o n能量 熵作为特征参数 , 对信 号进行 E MD分解提取 出前 3个 I MF分量作为特征信号 , 分别计算其 S h a n n o n能量熵作为特征 向
i s t i c p a r a m e t e r , t h e f i r s t t h r e e I MF s o f t h e s i g n a l a r e e x t r a c t e d w i t h S V D — mo r p h o l o g y i f l t e r — E MD ( e mp i r i c a l mo d e d e — c o mp o s i t i o n )a n d u s e d a s t h e c h a r a c t e r i s t i c s i g n a l s : t h e i r S h a n n o n e n t r o p i e s a r e c a l c u l a t e d a n d u s e d a s t h e c h a r a c t e r —
量得到样本集 , 作为多类别 S V M的输入 。在用样本训练 S V M时, 构造一种新 的核 函数 , 并 采用 N G A对 S V M的核 函数参数进行
全局优化 , 使 S V M获得最佳的分类性能 , 提高 其分类识别的正确率 。最后 采用凯斯西储 大学 的滚 动轴承故 障样本进行 了分类 识别 , 并 与其他 几种方法进行 了对比 , 结果表 明该方法具有更好 的可靠性 和分类 准确 率。
有效降低SVM训练时间的方法研究

有效降低SVM训练时间的方法研究支持向量机(SVM)是一种常见的监督学习方法,其在分类和回归问题中具有广泛的应用。
SVM的优点是对于高维数据和非线性问题具有较好的泛化能力,因此现在很多研究工作都采用SVM来解决问题。
但是,SVM需要大量的计算资源和时间,尤其是在处理大规模数据时,训练时间很容易变得非常长。
因此,有效降低SVM训练时间的方法的研究具有重要的实际意义。
1. 选取合适的核函数核函数是SVM中的重要参数之一,它将低维空间中的非线性问题映射到高维空间,使得数据在高维空间中能够被更好的分离。
常用的核函数有线性核、多项式核和高斯核等。
对于少量的数据集,选取某些核函数对于SVM的性能没有显著的影响。
但是,对于大规模的数据集,选取合适的核函数能够有效地加快SVM的训练速度。
例如,高斯核在处理大规模数据时需要计算大量的高斯相似度,而线性核则只需要计算点乘操作。
因此,对于大规模数据集,选择线性核或多项式核比高斯核更快速。
2. 采用增量学习增量学习是一种机器学习的技术,它可以利用已有的训练数据不断增加新的数据以更新模型。
SVM可以采用在线增量学习的方法,实现对数据的持续分析和学习,并且只需要维护部分训练数据集,可以显著降低训练时间。
对于大规模数据集,采用增量学习的方法可以将训练时间从几小时甚至几天降低到几分钟。
3. 数据的预处理和降维对于大规模数据集,数据的预处理和降维也是降低SVM训练时间的有效方法。
数据预处理可以包括特征选择、特征提取和特征转换等技术。
其中,特征选择是丢弃一些不重要的特征,而特征提取则是通过某些数学方法获得更有用的特征。
特征转换则是通过某些转换技术将原有特征转换为更有用的特征。
降维是另一种重要的数据预处理技术,在许多应用领域都非常广泛。
降维可以将高维数据转换为低维数据,从而减少计算开销和存储开销。
常用的降维方法有主成分分析(PCA)和随机投影等,它们能够有效地保留数据的主要信息并减少冗余。
SVM的SMO算法实现

SVM的SMO算法实现SVM(Support Vector Machine)是一种常用的分类算法,其原理是将数据集映射到一个高维空间中,使得不同类别的样本能够被一个超平面正确分割。
SMO(Sequential Minimal Optimization)算法是一种用于求解SVM问题的优化算法,其核心思想是将大问题分解为一系列的小问题,通过迭代求解这些小问题来得到最优解。
SMO算法允许一次只优化两个变量,即选择两个变量α_i和α_j进行优化。
具体的优化步骤如下:1. 选择一对需要优化的变量α_i和α_j,使用启发式方法选取这两个变量。
一般选择两个变量时,先遍历整个α向量,找到违反KKT条件最严重的点,KKT(Karush-Kuhn-Tucker)条件是SVM问题的最优性条件,通过判断α向量是否满足该条件来选择需要优化的变量。
2.固定其他变量,通过求解子问题的方式更新选择的两个变量。
通过求解两个变量的二次规划问题,得到更新后的α_i和α_j。
3.更新阈值b。
每次更新α_i和α_j之后,都需要计算新的阈值b。
根据KKT条件,选择满足条件的α_i或α_j来更新阈值b。
4.判断终止条件。
迭代过程中,根据一定的终止条件来决定是否终止算法,一般可以设置最大迭代次数或目标误差。
SMO算法的具体实现如下:1.初始化α向量、阈值b和错误率向量E。
2.选择需要优化的两个变量α_i和α_j。
3.计算变量α_i和α_j的边界。
4.根据变量α_i和α_j是否满足边界来选择优化方法。
5.在选择的两个变量上进行优化。
求解两个变量的二次规划子问题,得到更新后的α_i和α_j。
6.更新阈值b。
7.更新错误率向量E。
8.判断终止条件。
如果满足终止条件则停止迭代,否则返回第2步继续迭代。
完整的SMO算法实现如下:```pythondef smo(X, y, C, tol, max_iter):m, n = X.shapealpha = np.zeros(m)b=0iters = 0while iters < max_iter:alpha_changed = 0for i in range(m):E_i = np.sum(alpha * y * kernel(X, X[i, :])) + b - y[i]if (y[i] * E_i < -tol and alpha[i] < C) or (y[i] * E_i > tol and alpha[i] > 0):j = select_second_alpha(i, m)E_j = np.sum(alpha * y * kernel(X, X[j, :])) + b - y[j]alpha_i_old = alpha[i]alpha_j_old = alpha[j]if y[i] != y[j]:L = max(0, alpha[j] - alpha[i])H = min(C, C + alpha[j] - alpha[i])else:L = max(0, alpha[i] + alpha[j] - C)H = min(C, alpha[i] + alpha[j])if L == H:continueeta = 2 * kernel(X[i, :], X[j, :]) - kernel(X[i, :], X[i, :]) - kernel(X[j, :], X[j, :])if eta >= 0:continuealpha[j] = alpha[j] - y[j] * (E_i - E_j) / etaalpha[j] = clip_alpha(alpha[j], H, L)continuealpha[i] = alpha[i] + y[i] * y[j] * (alpha_j_old - alpha[j]) b1 = b - E_i - y[i] * (alpha[i] - alpha_i_old) *kernel(X[i, :], X[i, :]) - y[j] * (alpha[j] - alpha_j_old) * kernel(X[i, :], X[j, :])b2 = b - E_j - y[i] * (alpha[i] - alpha_i_old) *kernel(X[i, :], X[j, :]) - y[j] * (alpha[j] - alpha_j_old) * kernel(X[j, :], X[j, :])if 0 < alpha[i] < C:b=b1elif 0 < alpha[j] < C:b=b2else:b=(b1+b2)/2alpha_changed += 1if alpha_changed == 0:iters += 1else:iters = 0return alpha, b```以上是SMO算法的简单实现,其中使用了一些辅助函数(如选择第二个变量、计算核函数等),这些函数需要根据具体的问题进行实现。
SVM——详细讲解SMO算法优化两个变量以及变量的选择
SVM——详细讲解SMO算法优化两个变量以及变量的选择支持向量机(SVM)是一种二分类模型,它在分类超平面的构建过程中,通过优化二次规划问题求解得到最优的超平面。
而序列最小最优化(Sequential Minimal Optimization,SMO)算法则是一种用于求解SVM 二次规划问题的简化算法。
在SVM中,分类超平面可以表示为w*x+b=0,其中w为法向量,b为截距,x为输入样本。
SVM的目标是找到具有最大边界的超平面,使得训练样本与超平面的距离最大化。
优化SVM的问题可以转化为求解以下二次规划问题:\begin{align*}\min\limits_{\alpha} & \quad \frac{1}{2}\sum_{i=1}^{N}{\sum_{j=1}^{N}{\alpha_i \alpha_j y_i y_j K(x_i, x_j)}} - \sum_{i=1}^{N}{\alpha_i}\\s.t. & \quad \sum_{i=1}^{N}{\alpha_i y_i} = 0 \\& \quad 0 \leq \alpha_i \leq C, \quad i = 1, 2, ..., N\end{align*}\]其中,N是训练样本数量,C是惩罚参数,K(x_i,x_j)是核函数。
SMO算法通过迭代优化变量alpha_i和alpha_j,来逐渐优化整个二次规划问题。
SMO算法的核心步骤有两个:选择变量和优化变量。
1.变量的选择:在每次迭代中,SMO算法通过两个嵌套循环选择优化变量alpha_i和alpha_j。
首先,外层循环选择第一个变量alpha_i,通过遍历所有训练样本点,选择违反KKT条件的样本点。
KKT条件是SVM最优解必须满足的条件,对于正样本来说,条件是alpha_i=0,对于负样本来说,条件是alpha_i=C。
如果选择到了违反KKT条件的alpha_i,就进入内层循环。
svm常用核函数
svm常用核函数SVM(Support Vector Machine,支持向量机)是一种常用的机器学习算法,被广泛应用于分类和回归问题。
SVM的核心思想是将数据映射到高维空间中,通过在特征空间中找到最优超平面来进行分类或回归。
为了实现这一目标,SVM使用了一些常用的核函数来处理非线性问题。
本文将介绍几种常用的SVM核函数。
1. 线性核函数线性核函数是SVM中最简单的核函数之一。
它可以将数据映射到更高维的空间中,从而使数据在高维空间中变得线性可分。
线性核函数的形式为K(x, y) = x * y,其中x和y代表输入数据的特征向量。
线性核函数适用于处理线性可分的问题,但对于非线性问题效果有限。
2. 多项式核函数多项式核函数是一种常见的非线性核函数。
它通过将数据映射到更高维度的多项式空间中,来处理非线性问题。
多项式核函数的形式为K(x, y) = (x * y + c)^d,其中c是常数,d是多项式的次数。
多项式核函数可以处理一定程度上的非线性问题,但对于复杂的非线性问题可能效果不佳。
3. 高斯核函数(RBF核函数)高斯核函数,也称为径向基函数(Radial Basis Function,RBF)核函数,是SVM中最常用的核函数之一。
它将数据映射到无穷维的特征空间中,通过计算输入数据与支持向量之间的相似度来进行分类或回归。
高斯核函数的形式为K(x, y) = exp(-||x - y||^2 / (2 * sigma^2)),其中sigma是高斯核函数的带宽参数。
高斯核函数可以处理复杂的非线性问题,并且在实际应用中表现良好。
4. Sigmoid核函数Sigmoid核函数是一种常用的非线性核函数,它可以将数据映射到无穷维的特征空间中。
Sigmoid核函数的形式为K(x, y) = tanh(alpha * x * y + beta),其中alpha和beta是调节参数。
Sigmoid核函数可以处理非线性问题,但在某些情况下可能会出现过拟合的问题。
遗传算法优化svm参数
遗传算法优化svm参数遗传算法是一种基于自然选择和进化理论的优化算法,适用于求解复杂的非线性优化问题。
由于支持向量机(SupportVector Machine,SVM)在机器学习中被广泛应用于分类和回归问题,因此使用遗传算法来优化SVM的参数是一个常见的研究方向。
SVM是一种二分类模型,通过在特征空间中寻找最佳的超平面对数据进行分类。
根据问题的不同,SVM具有多个参数需要进行调优,包括C(正则化常数)和核函数中的参数等。
使用遗传算法来优化这些参数可以通过以下步骤实现:1. 确定问题的适应度函数:在遗传算法中,适应度函数用于评估每个个体的性能。
对于SVM参数优化问题,可以选择采用交叉验证准确率或分类精度作为适应度函数。
2. 初始化种群:在遗传算法中,初始化种群是一个重要的步骤。
对于SVM参数优化问题,可以随机生成一组初始参数作为种群的起始点。
3. 选择操作:选择操作是根据适应度函数的结果选择优秀的个体。
常用的选择算法有轮盘赌选择和锦标赛选择等。
4. 交叉操作:交叉操作是从选择的个体中随机选择两个或多个个体,通过某种方式进行交叉生成新的个体。
在SVM参数优化问题中,可以选择单点交叉、多点交叉或均匀交叉等策略。
5. 变异操作:变异操作是为了确保种群具有一定的多样性,防止算法陷入局部最优解。
在SVM参数优化中,可以通过改变个体的某个或多个参数的值来进行变异。
6. 评价和重复:每次进行选择、交叉和变异操作后,都需要对生成的新个体进行评价并计算适应度值。
重复上述步骤直到满足终止条件为止,比如达到最大迭代次数或适应度达到某个阈值。
在进行SVM参数优化时,有几个问题需要考虑:1. 参数范围:对于每个参数,需要明确其可能的取值范围。
例如,正则化常数C通常取值为0到无穷大之间的正实数。
2. 交叉验证:在SVM参数优化中,使用交叉验证是常见的一种方式。
通过将数据集划分为训练集和验证集,可以评估不同参数组合的性能。
常用的交叉验证方法有k折交叉验证和留一验证等。
人工智能机器学习技术练习(习题卷13)
人工智能机器学习技术练习(习题卷13)第1部分:单项选择题,共58题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]SVM在下列那种情况下表现糟糕A)线性可分数据B)清洗过的数据C)含噪声数据与重叠数据点答案:C解析:当数据中含有噪声数据与重叠的点时,要画出干净利落且无误分类的超平面很难2.[单选题]一个SVM存在欠拟合问题,下面怎么做能提高模型的性能:A)增大惩罚参数CB)减小惩罚参数CC)减小核函数系数(gamma值)答案:A解析:C >0称为惩罚参数,是调和二者的系数,C值大时对误差分类的惩罚增大,C值小时对误差分类的惩罚减小。
当C越大,趋近无穷的时候,表示不允许分类误差的存在,margin越小,容易过拟合;当C趋于0时,表示我们不再关注分类是否正确,只要求margin越大,容易欠拟合。
3.[单选题]属于监督学习的机器学习算法是( )A)贝叶斯分类器B)主成分分析C)K-MeansD)高斯混合聚类答案:A解析:4.[单选题]中心极限定理是噪声抑制的中的统计原理,其内容是:均值分布总会收敛于一个()。
A)正态分布B)泊松分布C)多项式分布D)均值分布答案:A解析:5.[单选题]下面哪句话是正确的?A)机器学习模型的精准度越高,则模型的性能越好B)增加模型的复杂度,总能减小测试样本误差C)增加模型的复杂度,总能减小训练样本误差D)以上说法都不对答案:C解析:本题考查的是机器学习模型的评判指标。
机器学习模型的精准度(Precision)越高,模型性能不一定越好,还要看模型的召回率(Recall),特别是在正负样本分布不均的情况下。
一般使用 F1 score 评判标准。
A)一维B)二维C)三维D)多维答案:B解析:7.[单选题]下面不属于农业的有(__)。
A)farmersB)farmlogsC)prosperaD)uber答案:D解析:8.[单选题]Zookeeper-Stat结构体中dataLength是()A)znode数据变化号B)znode访问控制列表的变化号C)znode子节点数量D)znode的数据长度答案:D解析:9.[单选题]下列算法常用于聚类的问题是()A)k-meansB)逻辑回归模型C)决策树模型D)随机森林模型答案:A解析:10.[单选题]有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器的分类面方程是()A)2x+y=4B)x+2y=5C)x+2y=3D)以上都不对答案:C解析:11.[单选题]以下场景中,属于机器学习的是?A)让机器检测地震活动B)电脑运行仿生程序C)电脑作为计算器使用D)通过对不同阶段的西瓜照片进行识别,让机器能辨别熟西瓜答案:D解析:B)分类准则C)特征选取D)模式相似性测度答案:A解析:13.[单选题]关于机器学习模型中的数据,以下说法正确的是(A)数据越多越好B)数据只要质量好,越少越好C)数据的数量和质量都很重要D)模型选择最重要,数据影响不大答案:C解析:14.[单选题]对于一个给定的token,其输入表示为它的token嵌入、段嵌入(Segment Embedding)、位置嵌入(Position Embedding)的总和A)ELMoB)GPTC)BERTD)ULMFit答案:C解析:15.[单选题]下面不属于对学习器的泛化误差进行评估的方法是(__)A)留出法B)交叉验证法C)自助法D)网格搜索法答案:D解析:16.[单选题]2.当训练集很多时,一种更为强大的结合策略是使用(),即通过另一个学习器来进行结合。