关于人工智能:金融时间序列预测方法合集CNNLSTM随机森林相似度计算各类评判指标绘图数学建模科研适用

38次阅读

共计 2742 个字符,预计需要花费 7 分钟才能阅读完成。

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

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)

码源链接见文末跳转

文末链接跳转

更多优质内容请关注公号 & 知乎:汀丶人工智能;会提供一些相干的资源和优质文章,收费获取浏览。

本文参加了 SegmentFault 思否写作挑战「摸索编码世界之旅 – 记我的第一份编程工作」,欢送正在浏览的你也退出。

正文完
 0