资源简介
基于SVM的回归预测分析,MATLAB直接可以运行
代码片段和文件信息
%% 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
- 上一篇:mtsp源代码MATLAB
- 下一篇:源程序-自动识别人民币面值大小
相关资源
- libsvm数据格式转换程序
- 基于SVM的matlab车牌识别
- hog+svm图像二分类
- 基于PCA和SVM的人脸识别.zip
- 《MATLAB 神经网络30个案例分析》所有
- SVM分类与回归的matlab代码
- 基于LABVIEW和MATLAB混合编程障碍物识别
- svm 支持向量机 回归 预测
- libsvm - 支持多类别分类的svm工具箱m
- 经典SVM算法的MATLAB程序
- 蚁群优化SVM系数
- SVM-KM Matlab源程序
- 模式识别课程作业 基于svm的人脸识别
- MATLAB的SVM安装包drtoolbox_libsvm-3.17
- SVM算法对MNIST数据集分类
- 遗传算法优化支持向量机GASVM
- 经典SVM算法matlab程序
- 支持向量机matlab工具箱含资料及gui模
- SVM分类器.zip
- matlab流形学习算法工具包&matlab机器学
- 模式识别课程作业 matlab与libsvm环境
- libsvm工具包-Matlab
- 基于SVM+HOG的人脸检测matlab程序
- 支持向量机 SVM 和 核函数的 MATLAB 程序
- 经典SVM算法多类分类matlab程序
- 支持向量机SVM和核函数的matlab程序代
- SVM_light工具箱matlab
- MATLAB中使用SVM对大量图像进行分类识
- PSO_LSSVM程序代码及LSSVM工具箱
- 表情识别 源码Matlab LBP+LPQ SVM PCA
评论
共有 条评论