金融工夫序列预测办法合集:CNN、LSTM、随机森林、ARMA预测股票价格(实用于时序问题)、类似度计算、各类评判指标绘图(数学建模科研实用)
1.应用CNN模型预测将来一天的股价涨跌-CNN(卷积神经网络)
应用CNN模型预测将来一天的股价涨跌
数据介绍
open 开盘价;close 收盘价;high 最高价
low 最低价;volume 交易量;label 涨/跌
训练规模
特色数量×5;天数×5 = 5 × 5
卷积过程
最大池化过程
代码流程
- 获取股票数据
- 数据归一化
- 数据预处理(划分成5×5)
- 数据集宰割(训练集和测试集)
- 定义卷积神经网络
- 评估预测模型
模型架构
码源链接见文末跳转
文末链接跳转
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)能够并行训练(决策树间独立同散布)
算法输入:
留神:算法仅用于参考学习交换,因为是研一时期独立编写(当前可能进一步欠缺),所公开的代码并非足够欠缺和谨严,如以下问题:
模型波及参数未寻优(可思考网格搜寻、随机搜寻、贝叶斯优化)
- 指数平滑因子
- 随机森林模型树数量、决策树深度、叶子节点最小样本数等
- 将来第k天的抉择
- 归一化办法
- 随机森林模型其实自身不须要数据归一化(如算法对数据集进行归一化也须要思考对训练集、验证集、测试集独立归一化)
股票预测思考的数据特色:
- 原始数据特色(open/close/high/low)
- 技术指标(Technical indicator)
- 企业公开布告信息
- 企业将来布局
- 企业年度报表
- 社会舆论
- 股民情绪
- 国家政策
- 股票间影响等
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.21669504658close 161415.73886306392high 166077.6958545937low 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)
码源链接见文末跳转
文末链接跳转
更多优质内容请关注公号&知乎:汀丶人工智能;会提供一些相干的资源和优质文章,收费获取浏览。
本文参加了 SegmentFault 思否写作挑战「摸索编码世界之旅 - 记我的第一份编程工作」,欢送正在浏览的你也退出。