Matlab基于SVM的上证指数涨跌预测

#数据的提取
首先提取150天内上证指数的数据绘制成excel表格,并舍弃掉部分数据,最终保留开盘价作为首列,余列分别为收盘价,最高价,最低价,成交量,成交金额,此5项数据作为开盘价的特征参与模型训练。
在matlab程序内读取该excel.csv,选择导入数据,输出类型选择输出矩阵,(注:选择表作为输出类型则会得到一个table类型的矩阵并包含文字在内,不符合模型训练所需的类型),此时得到一个150×6的矩阵数据,右键选择并另存为datatest5.mat。


提取原始数据的第一列的所有行,赋值给t_train,作为开盘价的首个150×1数据,提取整个原始数据赋值给p_train(150×6),作为开盘价的特征数据参与模型计算。

clear all
clc
load datatest5.mat;t_train = datatest5(:,1);% 表示访问该矩阵的所有行的第一列;
p_train = datatest5; % 表示建立一个等效矩阵;
% [m,n] = size(y);  获取矩阵各维的长度
% kp = y(2:m,3); 表示访问sh矩阵2到m行的第一列
% kpx = y(2:m-1,:);  表示访问sh矩阵1到m-1行的所有列[pn_train,inputps] = mapminmax(p_train');
pn_train = pn_train';
[tn_train,outputps] = mapminmax(t_train');
tn_train = tn_train';%% 选择回归预测分析最佳的SVM参数c&g
[c,g] = meshgrid(-10:0.5:10,-10:0.5:10);
[m,n] = size(c);
cg = zeros(m,n);
eps = 10^(-4);
v = 5;
bestc = 0;
bestg = 0;
mis = Inf;
for i = 1:mfor j = 1:ncmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j) ),' -s 3 -p 0.1'];cg(i,j) = libsvmtrain(tn_train,pn_train,cmd);if cg(i,j) < mismis = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);endif abs(cg(i,j) - mis) <= eps && bestc > 2^c(i,j)mis = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);endend
end
% 2. 创建/训练SVM
cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -p 0.01'];
model = libsvmtrain(tn_train,pn_train,cmd);
[Predict_1,error_1,decision_values1] = libsvmpredict(tn_train,pn_train,model);predict_1 = mapminmax('reverse',Predict_1,outputps);
result_1 = [t_train predict_1];%% VI. 绘图
figure(1)
plot(1:length(t_train),t_train,'r-*',1:length(t_train),predict_1,'b:o')
axis([0 160,-inf,inf])
grid on
legend('真实值','预测值')
xlabel('日期')
ylabel('开盘指数')
string_1 = {'预测结果对比';['mse = ' num2str(error_1(2)) ' R^2 = ' num2str(error_1(3))]};
title(string_1)
figure(2);
mis = predict_1 - t_train;
plot(mis,'rd');
title('误差图(predicted data - original data)','FontSize',12);
xlabel('日期','FontSize',12);
ylabel('误差量','FontSize',12);
grid on;figure(3);
mis_1 = (predict_1 - t_train)/t_train;
plot(mis_1,'rd');
title('相对误差图(predicted data - original data)/original data','FontSize',12);
xlabel('日期','FontSize',12);
ylabel('相对误差量','FontSize',12);
grid on;

本代码经过matlab实际验证,可以通过运行无报错,有报错的情况下考虑是否未安装livsvm3.23

本程序只有一个测试集,未加验证集,如需验证可自行添加

机器学习之matlab算法SVM用150天数据预测上证指数的涨跌相关推荐

  1. 机器学习(四)SVM之根据相关数据预测交通流量

    根据相关数据预测交通流量 实验内容 准备工作 详细步骤 实验结果 实验内容 我们将建立一个SVM来根据相关数据预测交通流量. 准备工作 我们将要使用的数据集可以在https://archive.ics ...

  2. 机器学习笔记1:基于Logistic回归进行数据预测

    机器学习笔记1:基于Logistic回归进行数据预测 一.背景 近期项目的一个核心部分就是实现对数据的预测,因为没有实际的数据样本,所以我准备近期学习Machine Learning的几种方式,从简单 ...

  3. 基于灰狼算法优化的Elman神经网络数据预测

    基于灰狼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于灰狼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  4. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  5. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  6. Python实现经典机器学习案例——良/恶性性乳腺癌肿瘤完整数据预测

    Python实现经典机器学习案例 良/恶性性乳腺癌肿瘤完整数据预测 首先我们介绍一个概念,监督学习. 监督学习 "机器学习中监督学习模型的任务是根据已有经验知识对未知样本的目标/标签进行预测 ...

  7. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  8. 基于海鸥算法优化的Elman神经网络数据预测-附代码

    基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  9. 【LSSVM回归预测】基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测【含Matlab源码 2259期】

    ⛄一.灰狼算法优化最小支持向量机GWO-LSSVM简介 1 算法理论 采用灰狼优化算法的最小二乘支持向量机模型预测时,为避免过拟合现象和检验该模型的有效性,将实证部分主要分为:①基于灰狼优化算法的最小 ...

最新文章

  1. tf.keras.losses.CategoricalCrossentropy 多分类 交叉熵 损失函数示例
  2. NumPy之array
  3. pyspark使用ipython
  4. 字符串string和内存流MemoryStream及比特数组byte[]互转
  5. oracle查看角色内容,oracle创建,查看用户和角色,用户角色赋权
  6. c++删除数组中重复元素_PG13中的功能—B树索引中的重复数据删除
  7. LeetCode—4.滑动窗口
  8. Python打包应用程序
  9. [源]云计算技术堆栈系列——鸟瞰
  10. 省赛来了(组合数)nyoj158
  11. 计算机考试专业知识题库,专业知识:计算机考试题库练习题
  12. linux bt速度快,linux bt速度之王—— rtorrent
  13. 44186818 mipi屏的艰难之旅
  14. layim php,如何通过LayuiAdminLayIMThinkphpGateway实现小程序多客服接入系统的例子
  15. 读书笔记:软件工程(1) - 软件工程概述(1)
  16. Directsound 与 Waveout 有何不同
  17. 未来的无盘网吧是什么样子?
  18. 怎么用网线连接开发板
  19. kali虚拟机root密码错误
  20. Java获取文件大小

热门文章

  1. Python和Excel的完美结合:常用操作汇总
  2. 计算机系统包含计算机硬件和,一个完备的计算机系统应该包含计算机的硬件和软件...
  3. 学拳录.第15势 十字手
  4. 湖北工业大学计算机专硕学费,2019年湖北工业大学硕士研究生学费奖助政策详情...
  5. lotus同一台机拆分P1、P2绑定CPU
  6. ERDAS中Pleiades卫星数据的正射校正
  7. 8月9日逆水寒服务器维护时间,【图片】《逆水寒》2019年8月8日更新公告【逆水寒ol吧】_百度贴吧...
  8. uni-app(android、ios) 使用蓝牙便携式打印机(热敏打印机)
  9. 卜若的代码笔记-数据结构系列-第三章:链表-最简单的线性表:单链表
  10. 高等数学同济六版中函数运算一节例题的分析