使用优化SVR模型进行组效研究周培培一、课题研究背景和理论基础1.支持向量机的提出人的智慧机器学习支持向量机一、课题研究背景和理论基础•20世纪60年代V.N.Vapnik等人开始究支持向量机。•随着机器学习理论不断发展和成熟,同时由于神经网络等机器学习模型的研究进展遇到阻碍,20世纪90年代,支持向量机的研究取得了突破性进展。•目前,支持向量机算法被认为是针对小样本统计估计和预测学习的最佳理论。优点:适用范围广、鲁棒性强、操作简单……2.支持向量机的发展一、课题研究背景和理论基础支持向量分类机SVC(supportvectorclassification)支持向量回归机SVR(supportvectorregression)支持向量机定量分析定性分析3.支持向量机的分类ε-SVR,ν-SVR一、课题研究背景和理论基础低维空间向高维空间映射核函数寻求最优超平面4.支持向量机的理论基础。线性函数:𝐊𝐱,𝐱′=𝐱∙𝐱′多项式函数:𝐊𝐱,𝐱′=(𝐠∙𝐱∙𝐱′+𝐦)𝐝径向基函数(RBF):𝐊𝐱,𝐱′=𝐞𝐱𝐩(−𝐠∙𝐱−𝐱′𝟐)一、课题研究背景和理论基础参数的优化至关重要:•基于梯度下降的参数选择方法、•基于蚁群算法的参数选择方法、•基于网格的参数优化方法、•基于粒子群优化算法的参数选择方法、•基于遗传算法的参数优化方法、•基于基因表达式编程的参数优化方法。•……粒子群优化算法(ParticleSwarmOptimization,PSO)5.支持向量机的参数优化一、课题研究背景和理论基础•PSO源于对鸟群捕食行为的研究:它是一种通过群体中粒子之间的合作与竞争产生的群体智能指导优化搜索方法。在PSO算法中,首先系统初始化为一组随机解,在迭代中搜寻最优值,在解空间中追随最优的粒子。每个粒子通过迭代过程中自身的最优值和群体的最优值来不断的修正自己的前进速度和方向,从而形成群体寻优的正反馈机制。5.PSO算法介绍一、课题研究背景和理论基础计算粒子适应度值输入处理后数据开始设置粒子和速度初始值寻找个体机制和群体极值N满足结束条件Y个体极值和群体极值更新更新速度和位置计算粒子适应度值得到优化参数结束二、模型构建和算法实现1.开发平台二、模型构建和算法实现2.建模步骤参数寻优、模型建立、结果预测、绘制图形、保存数据、存储图形。二、模型构建和算法实现(1).Libsvm编译在正式的模型设计和运行前,应当对libsvm进行编译。Attention:安装时,把libsvm作为当前的工作目录,在后面使用时并将其加为工作目录(setpath…)。添加至搜索目录搜素编译环境选择VC++设置当前文件夹编译•在进行建模之前,对训练集和测试集进行归一化处理。本课题中采用的方法是:•经处理后,原始数据被规整到[0,1]之间,便于以后的建模。二、模型构建和算法实现(2).数据预处理x→x‘=x−xminxmax−xmin程序代码如下:Q=csvread('filename.csv');[m,n]=size(Q);maxy=max(Q(:,n));miny=min(Q(:,n));fori=1:ntemp=Q(:,i);temp=(temp-min(temp))/(max(temp)-min(temp));Q_scale(:,i)=temp;end•使用交叉验证(CrossValidation)的思想,采用其中最简单的Hold-Out方法把输入的数据随机分为两部分,一部分为作为训练集(约占70%),一部分作为测试集(约占30%)。此种方法简单方便。二、模型构建和算法实现(3).挑选训练集和测试集程序代码如下:[train,test]=crossvalind('HoldOut',m,0.3);train_x=P(train,:);train_y=T(train,:);test_x=P(test,:);test_y=T(test,:);•此程序调用libsvm工具箱中的psoSVMcgForRegress.m,直接对C,g优化。•为了评价参数C、和参数g的优劣,使用训练集作为训练和预测数据,选取计算预测结果的均方误差(MSE)作为适应度函数,每个粒子都包含一个C值和一个g值,个体通过适应度函数计算适应度值,PSO通过不断的迭代、比较、寻优,不断的更新群体,从而寻找到最优的惩罚参数C、精度。•在参数优化过程中,采用了交叉验证的K-fold方法。二、模型构建和算法实现(4).PSO优化参数程序代码如下:pso_option.c2=1.7;pso_option.maxgen=200;pso_option.sizepop=20;pso_option.k=0.6;pso_option.wV=1;pso_option.wP=1;pso_option.v=5;pso_option.popcmax=100;pso_option.popcmin=0.1;pso_option.popgmax=1000;pso_option.popgmin=0.01;[bestCVmse,bestc,bestg]=psoSVMcgForRegress(TrainL,Train,pso_option,stype,ttype)二、模型构建和算法实现(5).构建SVR模型把参数集和训练集带入函数svmtrain获得SVR模型model把模型赋予测试函数svmpredict获得预测结果设定模型参数集cmdcmd是模型参数集,确定了模型的决策函数、核函数、模型拟合的基准要求,以及相应的参数。model是模型结构,是svmtrain的返回值。以均方误差(MSE)、相关系数(R)、标准偏差(RSE)作为SVR模型优劣的评价参数。程序代码如下:cmd=['-c',num2str(bestc),'-g',num2str(bestg),'-s',num2str(stype),'–t',num2str(stype),'-p0.01'];model=svmtrain(train_y,train_x,cmd);[ptrain,train_mse]=svmpredict(train_y,train_x,model);[ptest,test_mse]=svmpredict(test_y,test_x,model);mse=zeros(1,2);r=zeros(1,2);mse(1)=train_mse(2);mse(2)=test_mse(2);r(1)=train_mse(3);r(2)=test_mse(3);二、模型构建和算法实现•反归一化•在训练和预测结束后,对预测结果进行反归一化。公式为:•作图•为了更为形象的表示预测结果,画出真实值和预测值的曲线,即SVR模型的拟合图像。x′→x=x′×(xmax−xmin)+xmin二、模型构建和算法实现•保存数据•为了以后的比较选择,需对所有的训练结果进行保存,存入matlab的工作空间。程序代码如下:e_train=Train_y-Ptrain;e_test=Test_y-Ptest;K=length(Train_y);I=length(Test_y);RSE_train=sqrt(sum(e_train.^2)/(K-1))/mean(Train_y)*100;RSE_test=sqrt(sum(e_test.^2)/(I-1))/mean(Test_y)*100;A(i,:)=[i,bestCVmse,bestc,bestg,mse(1),RSE_train,r(1),mse(2),RSE_test,r(2)];A1(i,:)=[i,mse(1),RSE_train,r(1),mse(2),RSE_test,r(2)];(5).附加程序二、模型构建和算法实现•保存图像•在程序功能需求中,要求保存其中最优的一组图形。程序代码如下:mnumber=43;name=1023;mturn=a+1-mnumber;fori=1:aforii=1:3ifi==mturnsaveas(gca,num2str(name*10-ii+4),'fig');close(gcf);elseclose(gcf);endendend三、适用性验证1.数据来源20种组成生物活性数据三、适用性验证序号简称模型选择核函数1LESVRε-SVR线性核函数(linear)2PESVR多项式核函数(polynomial)3RESVR径向基核函数(RBF)4LNSVRν-SVR线性核函数(linear)5PNSVR多项式核函数(polynomial)6RNSVR径向基核函数(RBF)2.构建模型•在姜黄的组效关系建模中,构建如下几个模型三、适用性验证名称BestCBestgMSE-trianRSE-trianR-trainMSE-testRSE-testR-testLESVR0.143230.08570.01770.09650.81720.01890.13470.8939PESVR6.75610.10000.01470.08740.83440.02800.21730.8796RESVR1.99420.10000.00500.16180.94050.00920.17000.9326LNSVR0.100035.99020.00820.08800.87240.00980.14930.8917PNSVR2.25430.10000.00200.01200.97440.01060.16470.9248RNSVR0.94630.10000.00170.14330.97280.01930.22340.9551•各模型的结果值如下表所示模型拟合结果表•从表中可以看出,两种模型的测试结果的相关系数均大于0.9,且均方误差和标准偏差都较小,惩罚参数C值也都不大。可见PSO-SVR模型在预测姜黄的生物活性时,效果良好。名称BestCBestgMSE-trianRSE-trianR-trainMSE-testRSE-testR-testRESVR1.99420.10000.00500.16180.94050.00920.17000.9326RNSVR0.94630.10000.00170.14330.97280.01930.22340.9551三、适用性验证01020304050607080901000.040.0450.050.0550.06进化代数适应度适应度曲线MSE[PSOmethod](参数c1=1.5,c2=1.8,终止代数=100,种群数量pop=20)Bestc=0.94625g=0.1CVmse=0.035245最佳适应度平均适应度RNSVR模型PSO参数寻优结果图RNSVR模型拟合分图(上图为训练图,下图为测试图)051015202500.20.40.60.8TrainSetRegressionPredictbySVMoriginalpredict12345678900.20.40.60.8TestSetRegressionPredictbySVMoriginalpredict三、适用性验证RNSVR模型拟合示意图051015202530350.10.20.30.40.50.60.70.8originalpredict