我把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回归预测模型相关推荐

  1. svm算法 matlab,SVM算法matlab程序

    经典SVM算法matlab程序\svm\binomial.m 经典SVM算法matlab程序\svm\centrefig.m 经典SVM算法matlab程序\svm\cmap.mat 经典SVM算法m ...

  2. 【股价预测】基于matlab SVM股票价格预测【含Matlab源码 180期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[股价预测]基于matlab SVM股票价格预测[含Matlab源码 180期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  3. 边坡沉降预测【基于布谷鸟蚁群组合算法优化SVM】Matlab

    边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 文章目录 边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 前言 一.边坡沉降数据特性 二.布谷鸟蚁群组合算法 三.基于布谷鸟 ...

  4. 威布尔 风速 matlab,风速威布尔分布和ARMA预测模型matlab程序.doc

    风速威布尔分布和ARMA预测模型matlab程序 clc clear %% 1.计算风速weibull分布 % 数据处理 load data; mu=mean(speed);%原始数据的统计参数 si ...

  5. ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略

    ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数

  6. python bp神经网络进行预测_python实现BP神经网络回归预测模型

    神经网络模型一般用来做分类,回归预测模型不常见,本文基于一个用来分类的BP神经网络,对它进行修改,实现了一个回归模型,用来做室内定位.模型主要变化是去掉了第三层的非线性转换,或者说把非线性激活函数Si ...

  7. 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0

    今天看了有关支持向量机(Support vector machine,简称SVM )用来分类的内容.通过学习算法,SVM可以自动找出那些对分类有用有较好区分能力的支持向量,由此构造出的分类器可以最大化 ...

  8. 零售行业交易数据分析(1)——客户终身价值(CLTV)计算和回归预测模型(Python)

    内容介绍 本文整理了客户终身价值(CLV或者CLTV)的相关概念,并对一家英国线上零售公司的一年交易数据进行分析,计算该公司所有客户的CLV并且建立回归预测模型. 一.客户生命周期价值 用户生命周期价 ...

  9. 灰色预测模型MATLAB代码及使用

    灰色预测模型MATLAB代码及使用 灰色预测步骤 (1)输入前期的小样本数据 (2)输入预测个数 (3)运行 使用代码视频 代码使用视频在B站 之后会在评论区给传送门供大家参考理解GM(1,1)模型的 ...

最新文章

  1. c语言编号程序,c语言中如何在一个程序语句前加编号c语言中如何在一个程序语句前加...
  2. python什么模块动态调用链接库_Python调用C/C++动态链接库的方法详解
  3. numa对MySQL多实例性能影响
  4. with grant option mysql_mysql用户及权限(WITH GRANT OPTION)
  5. 多线程顺序交替打印ABCD
  6. 决策树之前要不要处理缺失值_不要使用这样的决策树
  7. 【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)
  8. 软考中高项学员:2016年4月13日作业
  9. jquery+cropper剪切、旋转、缩放图片
  10. 逻辑思维与写作-第一章,第二章-随笔笔记
  11. 用Andriod studio学习制作APP
  12. Kinect应用开发实战:用最自然的方式与机器对话
  13. java开发外包是什么意思,一文全懂
  14. MySQL数据库常用查询(带练习示例)
  15. 理性看待 数据分析师 Hot!
  16. 开启微信公众号定位服务器,微信公众号的定位是怎样的?
  17. python 柱状图 内部颜色_Matplotlib/seaborn柱状图使用不同的颜色分组存储箱
  18. MySQL复习笔记(三)
  19. Linux环境下安装onlyoffice
  20. 《Java小子怒闯数据结构九重天》第二重天——字符串

热门文章

  1. php grpc,PHP配置grpc
  2. 四氧化三铁磁性纳米微球/聚苯乙烯磁性微球/二氧化硅磁性微球/氨基磁珠
  3. OpenCV+CUDA学习2---图像灰度化
  4. uni-app返回禁用或去除
  5. 国家电网泛在电力物联网分析—架构形式
  6. 【最简单的python画折线图】半封装式代码画折线图,防止写重复代码
  7. python去除换行_python去除换行
  8. python画圆形螺旋线_用Python写一首中秋Rap
  9. H.264中的熵编码算法(主讲指数哥伦布编码)
  10. C++如何让函数返回数组