金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)

news2024/11/15 17:43:09

在这里插入图片描述

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自身的硬实力。

在这里插入图片描述

  1. 专栏订阅:项目大全提升自身的硬实力

  2. [专栏详细介绍:项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域)

金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)

码源见文章顶部或文末链接

https://download.csdn.net/download/sinat_39620217/87988639

1.使用CNN模型预测未来一天的股价涨跌-CNN(卷积神经网络)

使用CNN模型预测未来一天的股价涨跌

数据介绍

open 开盘价;close 收盘价;high 最高价

low 最低价;volume 交易量;label 涨/跌

训练规模

特征数量×5;天数×5 = 5 × 5

卷积过程

最大池化过程

代码流程

  1. 获取股票数据
  2. 数据归一化
  3. 数据预处理(划分成5×5)
  4. 数据集分割(训练集和测试集)
  5. 定义卷积神经网络
  6. 评估预测模型

模型架构

2.基于LSTM预测股票价格(长短期记忆神经网络)

基于LSTM预测股票价格(简易版)

数据集:

沪深300数据

数据特征:

只选用原始数据特征(开盘价、收盘价、最高价、最低价、交易量)

时间窗口:

15天

代码流程:

读取数据->生成标签(下一天收盘价)->分割数据集->LSTM模型预测->可视化->预测结果评估

LSTM网络结构:

函数介绍:

1、generate_label 生成标签(下一天收盘价)

2、generate_model_data 分割数据集

3、evaluate 结果评估

4、lstm_model LSTM预测模型

5、main 主函数(含可视化)

可视化输出:

训练集测试集拟合效果:

评估指标:

1、RMSE:55.93668241713906

2、MAE:44.51361108752264

3、MAPE:1.3418267677320612

4、AMAPE:1.3420384401412058

3.基于随机森林预测股票未来第d+k天相比于第d天的涨/跌Random-Forest(随机森林)

基于随机森林预测股票未来第d+k天相比于第d天的涨/跌(简易版)

参考论文:Predicting the direction of stock market prices using random forest

论文流程:

算法流程:

获取金融数据->指数平滑->计算技术指标->数据归一化->随机森林模型预测

函数介绍:

1、get_stock_data 通过Tushare获取原始股票数据

2、exponential_smoothing、em_stock_data 股票指数平滑处理

3、calc_technical_indicators 计算常用的技术指标

4、normalization 数据归一化处理并分割数据集

5、random_forest_model 随机森林模型并返回准确率和特征排名

决策树:

(1)ID3: 基于信息增益大的数据特征划分层次

(2)C4.5: 基于信息增益比=信息增益/特征熵划分层次

(3)CART: 基于Gini划分层次

基于Bagging集成学习算法,有多棵决策树组成(通常是CART决策树),其主要特性有:

(1)样本和特征随机采样

(2)适用于数据维度大的数据集

(3)对异常样本点不敏感

(4)可以并行训练(决策树间独立同分布)

算法输出:

注意:算法仅用于参考学习交流,由于是研一时期独立编写(以后可能进一步完善),所公开的代码并非足够完善和严谨,如以下问题:

  1. 模型涉及参数未寻优(可考虑网格搜索、随机搜索、贝叶斯优化)

    1. 指数平滑因子

    2. 随机森林模型树数量、决策树深度、叶子节点最小样本数等

    3. 未来第k天的选择

    4. 归一化方法

  2. 随机森林模型其实本身不需要数据归一化(如算法对数据集进行归一化也需要考虑对训练集、验证集、测试集独立归一化)

  3. 股票预测考虑的数据特征:

    1. 原始数据特征(open/close/high/low)

    2. 技术指标(Technical indicator)

    3. 企业公开公告信息

    4. 企业未来规划

    5. 企业年度报表

    6. 社会舆论

    7. 股民情绪

    8. 国家政策

    9. 股票间影响等

4.模型输出结果

5.随机森林参数优化参考表

4.基于ARMA预测股票价格-ARMA(自回归滑动平均模型)

基于ARMA预测股票价格(5分钟数据)

1.检测数据平稳化

2.差分/对数等数据处理

3.使用ARMA模型预测

备注:部分代码参考网络资源

5.金融时间序列相似度计算

5.1.皮尔逊相关系数( pearson_correlation_coefficient)

1.1 由于不同股票价格范围差距过大,在进行股票时间序列相似度匹配过程中通常考虑对数差处理,其公式如下所示:

1.2经过对数差处理后的金融时间序列可表示:

1.3皮尔逊相关系数计算公式:

1.4结果

1.4.1相关性较强

1.4.2相关性较弱

5.2.动态时间规整(dynamic_time_wrapping)

2.1 计算两个金融时间序列的时间点对应数据的欧氏距离

2.2 更新时间点对应数据的距离

2.3 动态时间规整距离

2.4 伪代码

2.5 动态时间规整距离输出图举例

2.6 动态时间规整最优匹配对齐

2.7结果

2.7.1动态时间规整距离较短

2.7.1动态时间规整距离较长

5.3.余弦相似度(cosine similarity)

6.金融时间序列(其他)

6.1.计算特征方差(calc_variance.py)

open 161211.21669504658
close 161415.73886306392
high 166077.6958545937
low 156622.3645795179
......

6.2.绘制混淆矩阵(confuse_matrix.py)

6.3.特征间相关性(corr.py)

6.4.绘制预测模型性能——柱状图(result_bar.py)

6.5.绘制预测模型性能——折线图(result_plot.py)

6.6.相似金融时间序列绘制(similarity_time_series.py)

6.7.计算分类的评价指标(evaluation.py)

(1)准确率Accuracy

(2)精确率Precision

(3)召回率Recall

(4)特异度Specificity

(5)综合评价指标F-measure

(6)马修斯相关系数MCC(Matthews Correlation Coefficient)

6.8.窗口数据归一化(normalization.py)

(1)z-score标准化(std)

(2)最大最小归一化(maxmin)

6.9.股票数据下载(download.py)

(1)tushare接口

(2)JQdata接口

6.10.roc曲线绘制(roc.py)

6.11.混淆矩阵绘制(confusion_matrix.py)

6.12.卡尔曼滤波(kalmanfilter.py)

6.13.蜡烛图 (candle.py)

码源见文章顶部或文末链接

https://download.csdn.net/download/sinat_39620217/87988639

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Junit 快速入门

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 为什么学 JunitJunit 相关技术注解TestDisabledBeforeAll, AfterAllBeforeEach, AfterEach 参数化单参数CSV 获取参数多参数方…

华为云书库《Spring Boot2系列实战教程》电子书

华为开发者大会PaaS生态电子书推荐,助你成为了不起的开发者! 处理Spring Boot 常见企业级需求,《Spring Boot2系列实战教程》来了! 点击下方进入华为云官网 https://auth.huaweicloud.com/authui/login.html?localezh-cn&…

MySQL基础知识(一)-超详细Windows系统安装MySQL详细教程

1.简介 原计划,今天这篇想要给小伙伴们讲解一下python操作mysql数据库,但是由于近期换了一台新的电脑,所以一看mysql数据库都没安装,所有才有了这篇文章。尽管网上不乏此类型的文章,但是刚好自己要安装,所以…

C语言 base32与base64加解密

概述 Base32、Base64编码就是分别用32个、64个可打印字符表示二进制数据。 一、Base32规则 32 2^5,所以需要5 Bit来表示一个base32字符。一个字节8 Bit,5和8的最小公倍数是40。编码的过程中,以5个字节为一组转为8个base32字符,不…

python OA流程图xml文件画图 graphviz的使用

下面的公文发文的流程图,虽然流程环节有坐标信息,但graphviz设置pos参数效果也不是太好 问题在于如何为流程环节设置绝对坐标 D:\Study\myproject\Python_auto_office\flow_report\utils\draw_image.py 通过xml流程文件绘制流程图 import graphviz …

[期末网页作业]-小米官网(html+css+js)

今天,我非常高兴地向大家展示我的最新成果——仿写小米官网的页面。经过一个漫长的期末考试季节,我终于完成了这个耗费了许多心血的项目。在这个过程中,我付出了大量的时间和努力来确保每一个细节都尽善尽美。 首先,我注重了页面的…

【BMS】电池能量管理:充电管理(含关键参数)

🔋 电池包能量管理:充电管理(含关键参数) 🔋 零、友情提示:若时间有限或者有基础的同学可直接跳至第四章查看一、以通信为基础1.典型电路2.软件时序 二、充电过程(常规)️1.充电参数…

【剑指offer】6.二叉树的下一个结点(java)

文章目录 二叉树的下一个结点描述输入描述:返回值描述:示例1示例2示例3示例4思路完整代码 二叉树的下一个结点 描述 给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点…

JAVA leetCode 13. 罗马数字转整数

方法一:1.通过hashmap来保存字符与数字之间的关系 2:根据罗马数字转整数的特点,当前字符比右边的字符小并且不是最后一个字符就说明在计算总数时该字符的符号是负,反之即为正 代码展示: public static int romanToIn…

Spring Boot中的Hibernate是什么,如何使用

Spring Boot中的Hibernate是什么,如何使用 Hibernate是一个流行的Java ORM框架,它提供了一种将Java对象映射到关系数据库表的方法。Spring Boot集成了Hibernate,使得在开发Web应用程序时可以轻松地使用Hibernate操作数据库。本文将介绍Sprin…

记一次阿里云被挖矿处理记录

摘要 莫名其妙的服务器就被攻击了,又被薅了羊毛,当做免费的挖矿劳动力了。 一、起因 上班(摸鱼)好好的,突然收到一条阿里云的推送短信,不看不知道,两台服务器被拉去作为苦力,挖矿去…

核磁共振常用的文件格式介绍:NIfTI volume 格式 (*.nii), GIFTI 格式 (*.gii), CIFTI 格式 (*.nii)

核磁共振常用的文件格式介绍:NIfTI volume 格式, GIFTI 格式, CIFTI 格式 NIfTI volume 格式 (*.nii)GIFTI 格式 (*.gii)CIFTI 格式 (*.nii)自定义工作台 (wb_view) 文件:Scene file文件 (*.scene)规格文件 (*.spec)Spec file (*.border)Foci (*.foci)Trajectory file (*.t…

PowerShell和cmd区别以及在文件夹快速打开cmd窗口的几种方法

区别: cmd是Windows才有的,PowerShell是跨平台通用的 cmd进入的是dos系统 PowerShell可以看作是cmd的升级版。PowerShell更方便使用,而且功能更加强大 方法: 1.在PowerShell中打开cmd 在当前文件夹,shift右键找到…

《黑马头条》 内容安全 自动审核 feign 延迟任务精准发布 kafka

04自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后,开始审核文章 2 审核的主要是审核文章的 内容(文本内容和图片) 3 借助 第三方提供的接口审核文本 4 借助第三方提供的接口审核图片,由于图片存储到minIO中&…

flutter聊天界面-消息气泡展示实现Flexible

flutter聊天界面-消息气泡展示实现Flexible 在之前实现了flutter聊天界面的更多操作展示,消息气泡展示实现Flexible, 一、Flexible Flexible可以帮助Row、Column、Flex的子控件充满父控件,它的用法很灵活,也具有权重的属性。跟Fl…

记录征战Mini开发板从无到有

前言 我们店铺的开发板目前主要有Altera,Xilinx以及国产安路,高云。Xilinx只有Spartan6系列,这个系列的芯片只支持ISE软件,但是很多客户用的是VIVADO软件,所以导致我们无法满足客户的需求。基于此原因,我们经过几个月…

go性能分析工具--pprof使用

之前线上遇到了内存泄露,就在找工具来分析,刚好还是个纯go的项目, 就找到pprof. 来串一下如何使用吧; pprof可以支持多种类型的采样分析. 可以分析cpu或者内存或者goroutine等 集成很简单, 在工程中引入如下代码: import _ "net/http/pprof"go func() {log.Println…

K8s集群部署最新Jenkins 2.387.1

K8s集群部署最新Jenkins 2.387.1 概述环境准备设置存储目录并启动NFS服务安装 NFS 服务端 动态创建 NFS存储(动态存储)部署jenkins服务 概述 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作…

图像直方图、模板匹配

目录 1、图像直方图 1.1 直方图统计 1.2 直方图像素统计 1.3 直方图绘制 2、直方图均衡化 2.1 实现 2.2 效果 3、直方图匹配 3.1 匹配原理 3.2 实现 4、模板匹配 4.1 模板匹配 4.2 模板匹配函数 4.3 模板匹配方法标志 4.4 代码实现 1、图像直方图 1.1 直方图统计 1.…

超详细保姆级vue3和代码规范项目搭建

vue3-admin项目搭建 项目初始化 创建 git 仓库 npm 管理工具 pnpm 安装 pnpm create vite zf-v3-admin –template vue-ts pnpm init 初始化package.json 创建pnpm-workspace.yaml 定义工作区 pnpm-lock.yaml 和 package-lock.json 都是项目中的锁定文件,它…