24
使使使使 SVR 使使使使使使使使 使使使

使用优化 SVR 模型进行组效研究

  • Upload
    fausta

  • View
    87

  • Download
    3

Embed Size (px)

DESCRIPTION

使用优化 SVR 模型进行组效研究. 周培培. 一、课题研究背景和理论基础. 1. 支持向量机的提出. 一、课题研究背景和理论基础. 2. 支持向量机的发展. 20 世纪 60 年代 V. N. Vapnik 等人开始究 支持向量机 。 随着机器学习理论不断发展和成熟,同时由于神经网络等机器学习模型的研究进展遇到阻碍, 20 世纪 90 年代,支持向量机的研究取得了突破性进展。 目前 ,支持向量机算法被认为是 针对小样本统计估计和预测学习的最佳理论。. 优点: 适用范围广、鲁棒性 强 、操作简单 ……. 一、课题研究背景和理论基础. 3. 支持向量机的分类. - PowerPoint PPT Presentation

Citation preview

Page 1: 使用优化 SVR  模型进行组效研究

使用优化 SVR 模型进行组效研究周培培

Page 2: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础

Page 3: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础• 20世纪 60年代 V. N. Vapnik等人开始究支持向量机。• 随着机器学习理论不断发展和成熟,同时由于神经网络等机器学习模型的研究进展遇到阻碍, 20世纪 90年代,支持向量机的研究取得了突破性进展。• 目前,支持向量机算法被认为是针对小样本统计估计和预测学习的最佳理论。

优点:适用范围广、鲁棒性强、操作简单……

Page 4: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础支持向量分类机 SVC( support vector classification )

支持向量回归机 SVR ( support vector

regression )支持向量机

定量分析

定性分析

ε-SVR, ν-SVR

Page 5: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础

低维空间向高维空间映射 核函数

寻求最优超平面

线性函数:𝐊ሺ𝐱,𝐱′ሻ= 𝐱∙𝐱′

多项式函数:𝐊ሺ𝐱,𝐱′ሻ= (𝐠∙ሺ𝐱∙𝐱′ሻ+ 𝐦)𝐝 径向基函数(RBF): 𝐊ሺ𝐱,𝐱′ሻ= 𝐞𝐱𝐩 (−𝐠∙ԡ𝐱− 𝐱′ԡ𝟐)

Page 6: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础参数的优化至关重要:• 基于梯度下降的参数选择方法、• 基于蚁群算法的参数选择方法、• 基于网格的参数优化方法、• 基于粒子群优化算法的参数选择方法、• 基于遗传算法的参数优化方法、• 基于基因表达式编程的参数优化方法。• ……

粒子群优化算法 (Particle Swarm Optimization, PSO)

Page 7: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础• PSO源于对鸟群捕食行为的研究:

它是一种通过群体中粒子之间的合作与竞争产生的群体智能指导优化搜索方法。在 PSO 算法中,首先系统初始化为一组随机解,在迭代中搜寻最优值,在解空间中追随最优的粒子。每个粒子通过迭代过程中自身的最优值和群体的最优值来不断的修正自己的前进速度和方向,从而形成群体寻优的正反馈机制。

Page 8: 使用优化 SVR  模型进行组效研究

一、课题研究背景和理论基础

计算粒子适应度值

输入处理后数据开始

设置粒子和速度初始值

寻找个体机制和群体极值

N满足结束条件Y

个体极值和群体极值更新

更新速度和位置计算粒子适应度值

得到优化参数结束

Page 9: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现

Page 10: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现

参数寻优、模型建立、结果预测、绘制图形、保存数据、存储图形。

Page 11: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现(1).Libsvm 编译在正式的模型设计和运行前,应当对 libsvm 进行编译。Attention: 安装时 ,把 libsvm 作为当前的工作目录 , 在后面使用时并将其加为工作目录 (setpath…) 。

Page 12: 使用优化 SVR  模型进行组效研究

• 在进行建模之前,对训练集和测试集进行归一化处理。本课题中采用的方法是:

• 经处理后,原始数据被规整到[0,1]之间,便于以后的建模。

二、模型构建和算法实现(2). 数据预处理

x →x‘ = x− xminxmax − xmin 程序代码如下:Q = csvread('filename.csv');[m,n]=size(Q);maxy=max(Q(:,n));miny=min(Q(:,n));for i = 1 : n temp = Q(:, i); temp = (temp-min(temp)) /(max(temp)-min(temp)); Q_scale(:, i) = temp;end

Page 13: 使用优化 SVR  模型进行组效研究

• 使用交叉验证( Cross Validation)的思想,采用其中最简单的 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,:);

Page 14: 使用优化 SVR  模型进行组效研究

• 此程序调用 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)

Page 15: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现(5). 构建 SVR 模型

把参数集和训练集带入函数svmtrain

获得 SVR模型model

把模型赋予测试函数svmpredict

获得预测结果

设定模型参数集cmd

cmd是模型参数集,确定了模型的决策函数、核函数、模型拟合的基准要求,以及相应的参数。model是模型结构,是svmtrain的返回值。

以均方误差( MSE )、相关系数( R )、标准偏差( RSE )作为SVR 模型优劣的评价参数。

程序代码如下:cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s ',num2str(stype),' –t ',num2str(stype), '-p 0.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);

Page 16: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现• 反归一化• 在训练和预测结束后,对预测结果进行反归一化。公式为:

• 作图• 为了更为形象的表示预测结果,画出真实值和预测值的曲线,即 SVR模型的拟合图像。

x′ →x = x′ × (xmax − xmin ) + xmin

Page 17: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现• 保存数据• 为了以后的比较选择,需对所有的训练结果进行保存,存入 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). 附加程序

Page 18: 使用优化 SVR  模型进行组效研究

二、模型构建和算法实现• 保存图像• 在程序功能需求中,要求保存其中最优的一组图形。

程序代码如下:mnumber=43 ;name=1023;mturn=a+1-mnumber;for i=1:a for ii=1:3 if i==mturn saveas(gca,num2str(name*10-ii+4),'fig'); close(gcf); else close(gcf); end end end

Page 19: 使用优化 SVR  模型进行组效研究

三、适用性验证20种组成 生物活性

数据

31 批购自不同单位的姜黄

Page 20: 使用优化 SVR  模型进行组效研究

三、适用性验证序号 简称 模型选择 核函数

1 LESVR

ε-SVR

线性核函数( linear )2 PESVR 多项式核函数( polynomial )3 RESVR 径向基核函数( RBF )4 LNSVR

ν-SVR

线性核函数( linear )5 PNSVR 多项式核函数( polynomial )6 RNSVR 径向基核函数( RBF )

• 在姜黄的组效关系建模中,构建如下几个模型

Page 21: 使用优化 SVR  模型进行组效研究

三、适用性验证名称 Best C Best g

MSE-trian

RSE-trian

R-trainMSE-

testRSE-test

R-test

LESVR 0.1432 30.0857 0.0177 0.0965 0.8172 0.0189 0.1347 0.8939

PESVR 6.7561 0.1000 0.0147 0.0874 0.8344 0.0280 0.2173 0.8796

RESVR 1.9942 0.1000 0.0050 0.1618 0.9405 0.0092 0.1700 0.9326

LNSVR 0.1000 35.9902 0.0082 0.0880 0.8724 0.0098 0.1493 0.8917

PNSVR 2.2543 0.1000 0.0020 0.0120 0.9744 0.0106 0.1647 0.9248

RNSVR 0.9463 0.1000 0.0017 0.1433 0.9728 0.0193 0.2234 0.9551

• 各模型的结果值如下表所示模型拟合结果表• 从表中可以看出,两种模型的测试结果的相关系数均大于

0.9 ,且均方误差和标准偏差都较小,惩罚参数 C 值也都不大。可见 PSO-SVR 模型在预测姜黄的生物活性时,效果良好。

名称 Best C Best gMSE-trian

RSE-trian

R-trainMSE-

testRSE-test

R-test

RESVR 1.9942 0.1000 0.0050 0.1618 0.9405 0.0092 0.1700 0.9326RNSVR 0.9463 0.1000 0.0017 0.1433 0.9728 0.0193 0.2234 0.9551

Page 22: 使用优化 SVR  模型进行组效研究

三、适用性验证

0 10 20 30 40 50 60 70 80 90 100

0.04

0.045

0.05

0.055

0.06

进化代数

适应度

MSE[PSOmethod]适应度曲线( c1=1.5,c2=1.8, =100, pop=20)参数 终止代数 种群数量

Best c=0.94625 g=0.1 CVmse=0.035245

最佳适应度平均适应度

RNSVR 模型 PSO 参数寻优结果图

Page 23: 使用优化 SVR  模型进行组效研究

RNSVR模型拟合分图(上图为训练图,下图为测试图)

0 5 10 15 20 250

0.2

0.4

0.6

0.8Train Set Regression Predict by SVM

originalpredict

1 2 3 4 5 6 7 8 90

0.2

0.4

0.6

0.8Test Set Regression Predict by SVM

originalpredict

Page 24: 使用优化 SVR  模型进行组效研究

三、适用性验证

RNSVR模型拟合示意图0 5 10 15 20 25 30 35

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

originalpredict