【学习挑战赛 |深度学习实践(三)】RNN实现股票预测

部署运行你感兴趣的模型镜像

活动地址:优快云21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
热爱写作,愿意让自己成为更好的人…

  👉引言💎

在这里插入图片描述

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

【深度学习实践(三)】RNN实现股票预测

1 RNN是什么

1.1 RNN的基本概念

RNN是一个不断循环的神经网络,它在循环的过程当中是具有记忆性的,可以根据前面的输入状态循环调整模型,

  • 比如时序神经网络:

    处理“具有时序关系的输入序列”。也就是说,一个输入对应的输出,还取决于其“上文”的应用场合,如文字分类,自然语言处理
    *加粗样式

1.2 RNN的应用场景

RNN的应用范围非常广泛,举出部分例子:

  • Many To One

    • 情感分析。输入一段评论,输出该段评论是好评还是差评。

    • 关键信息提取。输入一篇文章,输出该文章中的关键信息。

  • Many To Many

    • 语音识别。输入一段语音,输出对应的文字。

    • 语言翻译。输入一段某国的文字或语音,输出一段另一个国家的对应意思的文字或语音。

    • 聊天机器人。输入一句话,输出回答。

  • 其他

    • 句子文法结果分析。输入一个句子,输出该句子的文法结构。

    • 句子自编码

2 前期准备

  • 设置GPU

    (模型的训练通常需要加工处理大量数据,这时候GPU的强大算力就体现出来了,一块好的GPU就像一个好鼎,就能练出来更好的丹药)

    import tensorflow as tf
    gpus = tf.config.list_physical_devices("GPU")
    
    
  • 数据预处理

    将加载好的数据进行预处理

    • 加载数据,将数据集加载到内存中

    • 用平均值或者0代替空值,奇异值;

    • 归一化,消去量纲影响等

3 模型训练与预测

  • 神经网络程序大概分为如下几个步骤:

    1. 选择模型

    2. 构建网络层

    3. 编译

    4. 训练

    5. 预测

3.1 构建模型
model = tf.keras.Sequential([
    SimpleRNN(100, return_sequences=True), #布尔值。是返回输出序列中的最后一个输出,还是全部序列。
    Dropout(0.1),                         #防止过拟合
    SimpleRNN(100),
    Dropout(0.1),
    Dense(1)
])

3.2 激活模型
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss='mean_squared_error')  # 损失函数用均方误差

3.3 训练模型
history = model.fit(x_train, y_train, 
                    batch_size=64, 
                    epochs=20, 
                    validation_data=(x_test, y_test), 
                    validation_freq=1)      
model.summary()

在这里插入图片描述

  • 预测

    predicted_stock_price = model.predict(x_test)                       
    predicted_stock_price = sc.inverse_transform(predicted_stock_price) 
    real_stock_price = sc.inverse_transform(test_set[60:])             
    
    
    

在这里插入图片描述

  • 评估

    """
    MSE  :均方误差    ----->  预测值减真实值求平方后求均值
    RMSE :均方根误差  ----->  对均方误差开方
    MAE  :平均绝对误差----->  预测值减真实值求绝对值后求均值
    R2   :决定系数,可以简单理解为反映模型拟合优度的重要的统计量
    
    详细介绍可以参考文章:https://blog.youkuaiyun.com/qq_38251616/article/details/107997435
    """
    MSE   = metrics.mean_squared_error(predicted_stock_price, real_stock_price)
    RMSE  = metrics.mean_squared_error(predicted_stock_price, real_stock_price)**0.5
    MAE   = metrics.mean_absolute_error(predicted_stock_price, real_stock_price)
    R2    = metrics.r2_score(predicted_stock_price, real_stock_price)
    
    print('均方误差: %.5f' % MSE)
    print('均方根误差: %.5f' % RMSE)
    print('平均绝对误差: %.5f' % MAE)
    print('R2: %.5f' % R2)
    
    

参考文章链接

🌹写在最后💖
路漫漫其修远兮,吾将上下而求索!伙伴们,再见!🌹🌹🌹在这里插入图片描述

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想new的出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值