svm预测模型 matlab,SVM回归预测模型
我把14章,SVM用于回归建模的例子改动后,结果出现了问题:
首先,我描述一下,我想做的东西:
我要预测输出的压力,当前的输出的压力和前3个时刻的5个变量有关,我也想减少变量,可是预测的效果就不好了)。我将程序改动如下,同时我出现几个问题:
【1】我用第 208 209 210 个时刻的数据 作为输入数据,来预测211时刻的输出压力。但由于我编写的程序,输出总能得到3个,也就是可以预测 211 212 213 的输出压力。
刚开始,我是这么想的,212时刻的输出按我的本意的话,应该是知道了 209 210 211时刻的输入后才能预测到的,这个时候预测的肯定是错误的,不用理会。但后来我发现, 当我把输入改成209 210 211 时刻是,我发现我错了,因为此时给出的212 213 214 这3个输出数据中,212 213 和上面将 208 209 210作为输入时预测到的数据一摸一样。所以我的模型应该是错误的,可我看不出来。我想让作者给我看看。我把程序贴到下面了。
%% SVM神经网络的回归预测分析---压缩机四段出口压力预测
%% 清空环境变量
function output_press
tic;
close all;
clear;
clc;
format compact;
%% 数据的提取和预处理
data=xlsread('C:\Program Files\MATLAB\R2011a\work\data','sheet2','c5:g223');
train_x = data(1:210,1:5);
train_y = data(4:213,3);
test_x = data(211:216,1:5);
test_y = data(214:219,3)
% 数据预处理,将原始数据进行归一化
%
[train_x_scale,test_x_scale] = scaleForSVM(train_x,test_x,-1,1);
[train_y_scale,test_y_scale,ps] = scaleForSVM(train_y,test_y,-1,1);
%% 参数c和g寻优选择
% %选择回归预测分析最佳的SVM参数c&g
%%粒子群算法优化
pso_option.c1 = 2.0;
pso_option.c2 =0.6;
pso_option.maxgen = 200;
pso_option.sizepop = 20;
pso_option.k = 1.2;
pso_option.wV = 1;
pso_option.wP = 1;
pso_option.v = 5;
pso_option.popcmax = 100;
pso_option.popcmin = 0.0001;
pso_option.popgmax = 1000;
pso_option.popgmin = 0.0001;
[bestmse,bestc,bestg] = psoSVMcgForRegress(train_y_scale,train_x_scale,pso_option);
%打印精细选择结果
disp('打印精细选择----粒子群算法优化结果');
str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg);
disp(str);
%% 利用回归预测分析最佳的参数进行SVM网络训练
cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -t 2 -p 0.01'];
model = svmtrain(train_y_scale,train_x_scale,cmd);
%% SVM网络回归预测
%用原来的训练数据来看系统的预测能力如何
[predict_train,mse] = svmpredict(train_y_scale,train_x_scale,model);
predict_train= mapminmax('reverse',predict_train',ps);
predict_train=predict_train';
% %打印回归结果
str = sprintf( '原训练数据——均方误差 MSE = %g 相关系数 R = %g%%',mse(2),mse(3)*100);
disp(str);
figure;
hold on;
plot(train_y,'-o');
plot(predict_train,'g-*');
legend('原始数据','回归预测数据');
hold off;
title('原始数据和回归预测数据对比','FontSize',12);
xlabel('压缩机运行时间(2011.2.15.15时-2011.02.25.11时)','FontSize',12);
ylabel('压缩机四段出口压力','FontSize',12);
grid on;
figure;
error = predict_train - test_y;
plot(error,'rd');
title('误差图(predicted data - original data)','FontSize',12);
xlabel('压缩机运行时间(2011.2.15.15时-2011.02.25.11时)','FontSize',12);
ylabel('误差量','FontSize',12);
grid on;
figure;
error = (predict_train- test_y)./test_y;
plot(error,'rd');
title('相对误差图(predicted data - original data)/original data','FontSize',12);
xlabel('压缩机运行时间(2011.2.15.15时-2011.02.25.11时)','FontSize',12);
ylabel('相对误差量','FontSize',12);
grid on;
snapnow;
toc;
save output_press_3.mat model
【2】如果您比较忙的话,您大致给我说说思路,就是用前3个时刻来预测当前这个时刻,怎么预测呢?/
[本帖最后由 史峰 于 2011-7-29 12:45 编辑]
svm预测模型 matlab,SVM回归预测模型相关推荐
- svm算法 matlab,SVM算法matlab程序
经典SVM算法matlab程序\svm\binomial.m 经典SVM算法matlab程序\svm\centrefig.m 经典SVM算法matlab程序\svm\cmap.mat 经典SVM算法m ...
- 【股价预测】基于matlab SVM股票价格预测【含Matlab源码 180期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[股价预测]基于matlab SVM股票价格预测[含Matlab源码 180期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 边坡沉降预测【基于布谷鸟蚁群组合算法优化SVM】Matlab
边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 文章目录 边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 前言 一.边坡沉降数据特性 二.布谷鸟蚁群组合算法 三.基于布谷鸟 ...
- 威布尔 风速 matlab,风速威布尔分布和ARMA预测模型matlab程序.doc
风速威布尔分布和ARMA预测模型matlab程序 clc clear %% 1.计算风速weibull分布 % 数据处理 load data; mu=mean(speed);%原始数据的统计参数 si ...
- ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略
ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数
- python bp神经网络进行预测_python实现BP神经网络回归预测模型
神经网络模型一般用来做分类,回归预测模型不常见,本文基于一个用来分类的BP神经网络,对它进行修改,实现了一个回归模型,用来做室内定位.模型主要变化是去掉了第三层的非线性转换,或者说把非线性激活函数Si ...
- 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0
今天看了有关支持向量机(Support vector machine,简称SVM )用来分类的内容.通过学习算法,SVM可以自动找出那些对分类有用有较好区分能力的支持向量,由此构造出的分类器可以最大化 ...
- 零售行业交易数据分析(1)——客户终身价值(CLTV)计算和回归预测模型(Python)
内容介绍 本文整理了客户终身价值(CLV或者CLTV)的相关概念,并对一家英国线上零售公司的一年交易数据进行分析,计算该公司所有客户的CLV并且建立回归预测模型. 一.客户生命周期价值 用户生命周期价 ...
- 灰色预测模型MATLAB代码及使用
灰色预测模型MATLAB代码及使用 灰色预测步骤 (1)输入前期的小样本数据 (2)输入预测个数 (3)运行 使用代码视频 代码使用视频在B站 之后会在评论区给传送门供大家参考理解GM(1,1)模型的 ...
最新文章
- c语言编号程序,c语言中如何在一个程序语句前加编号c语言中如何在一个程序语句前加...
- python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解
- numa对MySQL多实例性能影响
- with grant option mysql_mysql用户及权限(WITH GRANT OPTION)
- 多线程顺序交替打印ABCD
- 决策树之前要不要处理缺失值_不要使用这样的决策树
- 【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)
- 软考中高项学员:2016年4月13日作业
- jquery+cropper剪切、旋转、缩放图片
- 逻辑思维与写作-第一章,第二章-随笔笔记
- 用Andriod studio学习制作APP
- Kinect应用开发实战:用最自然的方式与机器对话
- java开发外包是什么意思,一文全懂
- MySQL数据库常用查询(带练习示例)
- 理性看待 数据分析师 Hot!
- 开启微信公众号定位服务器,微信公众号的定位是怎样的?
- python 柱状图 内部颜色_Matplotlib/seaborn柱状图使用不同的颜色分组存储箱
- MySQL复习笔记(三)
- Linux环境下安装onlyoffice
- 《Java小子怒闯数据结构九重天》第二重天——字符串