资源简介
matlab关于SVM的回归预测分析(上证指数开盘指数预测)相关代码
代码片段和文件信息
%% Matlab神经网络43个案例分析
% 基于SVM的回归预测分析——上证指数开盘指数预测
% by 李洋(faruto)
% http://www.matlabsky.com
% Email:faruto@163.com
% http://weibo.com/faruto
% http://blog.sina.com.cn/faruto
% 2013.01.01
%% 清空环境变量
function chapter_sh
tic;
close all;
clear;
clc;
format compact;
%% 数据的提取和预处理
% 载入测试数据上证指数(1990.12.19-2009.08.19)
% 数据是一个4579*6的double型的矩阵每一行表示每一天的上证指数
% 6列分别表示当天上证指数的开盘指数指数最高值指数最低值收盘指数当日交易量当日交易额.
load chapter_sh.mat;
% 提取数据
[mn] = size(sh);
ts = sh(2:m1);
tsx = sh(1:m-1:);
% 画出原始上证指数的每日开盘数
figure;
plot(ts‘LineWidth‘2);
title(‘上证指数的每日开盘数(1990.12.20-2009.08.19)‘‘FontSize‘12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)‘‘FontSize‘12);
ylabel(‘开盘数‘‘FontSize‘12);
grid on;
% 数据预处理将原始数据进行归一化
ts = ts‘;
tsx = tsx‘;
% mapminmax为matlab自带的映射函数
% 对ts进行归一化
[TSTSps] = mapminmax(ts12);
% 画出原始上证指数的每日开盘数归一化后的图像
figure;
plot(TS‘LineWidth‘2);
title(‘原始上证指数的每日开盘数归一化后的图像‘‘FontSize‘12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)‘‘FontSize‘12);
ylabel(‘归一化后的开盘数‘‘FontSize‘12);
grid on;
% 对TS进行转置以符合libsvm工具箱的数据格式要求
TS = TS‘;
% mapminmax为matlab自带的映射函数
% 对tsx进行归一化
[TSXTSXps] = mapminmax(tsx12);
% 对TSX进行转置以符合libsvm工具箱的数据格式要求
TSX = TSX‘;
%% 选择回归预测分析最佳的SVM参数c&g
% 首先进行粗略选择:
[bestmsebestcbestg] = SVMcgForRegress(TSTSX-88-88);
% 打印粗略选择结果
disp(‘打印粗略选择结果‘);
str = sprintf( ‘Best Cross Validation MSE = %g Best c = %g Best g = %g‘bestmsebestcbestg);
disp(str);
% 根据粗略选择的结果图再进行精细选择:
[bestmsebestcbestg] = SVMcgForRegress(TSTSX-44-4430.50.50.05);
% 打印精细选择结果
disp(‘打印精细选择结果‘);
str = sprintf( ‘Best Cross Validation MSE = %g Best c = %g Best g = %g‘bestmsebestcbestg);
disp(str);
%% 利用回归预测分析最佳的参数进行SVM网络训练
cmd = [‘-c ‘ num2str(bestc) ‘ -g ‘ num2str(bestg) ‘ -s 3 -p 0.01‘];
model = svmtrain(TSTSXcmd);
%% SVM网络回归预测
[predictmse] = svmpredict(TSTSXmodel);
predict = mapminmax(‘reverse‘predict‘TSps);
predict = predict‘;
% 打印回归结果
str = sprintf( ‘均方误差 MSE = %g 相关系数 R = %g%%‘mse(2)mse(3)*100);
disp(str);
%% 结果分析
figure;
hold on;
plot(ts‘-o‘);
plot(predict‘r-^‘);
legend(‘原始数据‘‘回归预测数据‘);
hold off;
title(‘原始数据和回归预测数据对比‘‘FontSize‘12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)‘‘FontSize‘12);
ylabel(‘开盘数‘‘FontSize‘12);
grid on;
figure;
error = predict - ts‘;
plot(error‘rd‘);
title(‘误差图(predicted data - original data)‘‘FontSize‘12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)‘‘FontSize‘12);
ylabel(‘误差量‘‘FontSize‘12);
grid on;
figure;
error = (predict - ts‘)./ts‘;
plot(error‘rd‘);
title(‘相对误差图(predicted data - original data)/original data‘‘FontSize‘12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)‘‘FontSize‘12);
ylabel(‘相对误差量‘‘FontSize‘12);
grid on;
snapnow;
toc;
%% 子函数 SVMcgForRegress.m
function [msebestcbestg] = SVMcgForRegress(train_labeltraincmincmaxgmingmaxvcstepgstepmsestep)
%SVMcg cross validation by faruto
%
% by faruto
%Email:patrick.lee@foxmail.com QQ:516667408 http://blog.sina.com.cn/faruto BNU
%last modified 2010.01.17
%Super Moderator @ www.ilovematlab.cn
% 若转载请注明:
% faruto and liyang LIBSVM-farutoUltimat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5529 2013-08-18 10:59 chapter16\chapter_sh.m
文件 219976 2010-01-30 18:39 chapter16\chapter_sh.mat
文件 24872 2013-08-18 11:01 chapter16\html\chapter_sh.html
文件 3998 2013-08-18 11:01 chapter16\html\chapter_sh.png
文件 9331 2013-08-18 10:59 chapter16\html\chapter_sh_01.png
文件 10025 2013-08-18 10:59 chapter16\html\chapter_sh_02.png
文件 17498 2013-08-18 11:01 chapter16\html\chapter_sh_03.png
文件 18915 2013-08-18 11:01 chapter16\html\chapter_sh_04.png
文件 22389 2013-08-18 11:01 chapter16\html\chapter_sh_05.png
文件 17509 2013-08-18 11:01 chapter16\html\chapter_sh_06.png
文件 12441 2013-08-18 11:01 chapter16\html\chapter_sh_07.png
文件 12113 2013-08-18 11:01 chapter16\html\chapter_sh_08.png
文件 10681 2013-08-18 11:01 chapter16\html\chapter_sh_09.png
目录 0 2013-08-18 11:01 chapter16\html
目录 0 2013-08-18 10:59 chapter16
----------- --------- ---------- ----- ----
385277 15
相关资源
- zw_支持向量机与朴素贝叶斯算法matl
- svm支持向量机与nbc朴素贝叶斯算法比
- svm 支持向量机 回归 预测
- 支持向量机的matlab实现及相应Demo
- 神经网络、遗传算法、支持向量机、
- 支持向量机matlab
- 遗传算法优化支持向量机GASVM
- 支持向量机matlab工具箱含资料及gui模
- 最新版,最小二乘支持向量机2010年
- 最小二乘支持向量机matlab程序+使用教
- 支持向量机回归smo的matlab实现 附带测
- 支持向量机 SVM 和 核函数的 MATLAB 程序
- 支持向量机SVM和核函数的matlab程序代
- 最小二乘支持向量机MATLAB程序附详细
- MATLAB实现支持向量机的图像分类:完
- HOG_SVM的行人检测
- MATLAB——支持向量机的分类——基于
- SVM支持向量机分类
- 基于支持向量机的故障诊断
- LSSVM程序代码
- 锂离子电池寿命数据包括特征数据+寿
- 最小二乘支持向量机程序代码
- 支持向量机 support vector machine
- 最小二乘支持向量机MATLAB程序,可分
- 基于MATLAB的图像SVM分类
- 支持向量机非线性回归通用matlab程序
- S4VM算法(Matlab)
- 支持向量机的matlab代码
- matlab支持向量机SVM完整工具包
- 支持向量机用于肌电信号模式识别的
评论
共有 条评论