零基础实战机器学习
黄佳
新加坡科研局首席研究员
19489 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 24 讲
零基础实战机器学习
15
15
1.0x
00:00/00:00
登录|注册

12|深度学习(中):如何用RNN预测激活率走势?

你好,我是黄佳。
欢迎来到零基础实战机器学习。在上一讲中,我们通过给鲜花图片分类,学习了 CNN 在图像识别方面的应用。这一讲呢,我们就来学习另外一种深度学习模型——循环神经网络 RNN(Recurrent Neural Network)。那么进入正题之前,我先给你讲个段子,让你直观理解一下,循环神经网络和其它神经网络模型有啥不同。
假如我和你开车去商场,然后我说“嘿!你知道吗,昨天老王的夫人生二胎了!”你说:“是吗?这么大年纪,真不容易。对了,上次你说他的项目没上线,对吧,后来那个项目到底怎么样了呢?”我回答说:“嗨,那个项目啊,别提了,把他整惨了,三次上线都失败了,现在公司在考虑放弃老王负责的这个项目。嗯,到了,你等我一会儿,我去给老王买个 _____(此处为填空,选项 1:项目;选项 2:玩具)慰问一下他。”
若是这个选择题给循环神经网络之外的其它神经网络做,我们得到的答案可能是“项目”,因为在输入的文本(特征)中,一直是在谈项目,可正确答案显然是“玩具”。也就是说,如果让神经网络实现类似于人脑的语义判别能力,有一个很重要的前提是,必须从所有过去的句子中保留一些信息,以便能理解整个故事的上下文。而循环神经网络中的记忆功能恰恰解决了这个“对前文的记忆”功能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了使用循环神经网络(RNN)预测激活率走势的技术。作者首先解释了RNN与其他神经网络模型的不同之处,强调了RNN的记忆功能对于处理依赖于上下文或历史信息的数据的重要性。详细介绍了数据集的特征和标签,以及时间序列数据的特点和构建特征的方法。在数据预处理部分,作者讲解了归一化缩放和构建特征集和标签集的步骤。进一步介绍了RNN的原理和适用场景,以及选择LSTM作为主要层结构的循环神经网络模型。训练模型并评估过程中,展示了损失曲线和模型预测结果。最后,强调了模型预测结果与实际走势的相近程度,并提出了进一步优化的可能性。整体而言,本文以易懂的语言介绍了RNN在预测激活率走势方面的应用,突出了时间序列数据的特点和处理方法,对读者了解RNN的记忆功能和处理时间序列数据具有指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《零基础实战机器学习》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 在路上
    佳哥好,测试了下SimpleRNN和GRU算法,SimpleRNN算法的损失值会达到0.2,GRU算法的损失值只有0.04,所以GRU算法的预测结果非常漂亮,几乎和实际值重叠。像请教下老师,后面的课程会解释神经网络的中间层的参数含义吗?我会换不同的算法,为什么要又三层,每一次参数为什么这么设置,其实并不清楚。

    作者回复: 嗯,神经网络的参数、原理细节,这里的确不是很深入。这里,我们讲到的程度是大概体会一下神经网络模型如何操作的。以此为基础,进一步学习。 我强烈推荐一本书:Keras之父François Chollet写的《Python深度学习》,这本书很容易读,而且权威。因为是Keras设计者自己对深度学习神经网络的理解,也是他写给初学者的。我认为应该拿来读一下。

    2021-09-27
    3
    3
  • 一杯绿绿
    老师好,有个疑问,不太理解本讲案例中的“根据前60天的历史激活数数值预测未来激活数”与前面第7讲提到的“根据前三个月的RFM值预测一年的总消费额”这两个案例的不同,看着感觉都是根据历史信息预测未来,那么第7讲的案例也可以用 RNN来解决吗?

    作者回复: 正如另外一个同学留言所解释的那样,这两个案例在表面上确实都是基于历史数据来预测未来的信息,但它们的核心问题和数据性质是有所不同的。 案例差异 “根据前60天的历史激活数数值预测未来激活数”:这个案例是典型的时序数据预测问题,每天的激活数都可能受到前面若干天激活数的影响,形成一个序列的依赖关系。 “根据前三个月的RFM值预测一年的总消费额”:这个案例更多地是基于客户的行为特征(RFM值)进行预测,不同的客户可能在相同的三个月时间内有不同的RFM值,但这个RFM值与其在未来一年的消费行为存在一定的关联。 是否可以用RNN处理第7讲的案例 理论上,只要数据之间存在序列依赖性,RNN都是可以尝试的。但在第7讲的案例中,RFM值更多地是描述客户的购买行为,而不是时间序列的连续性。尽管如此,如果你能转化这个问题为时序问题(例如,连续三个月的RFM变化来预测下一年的总消费),那么使用RNN是可能的。 但通常情况下,我们可能更倾向于使用其他的机器学习模型来处理RFM预测的问题,如回归分析、决策树或集成学习方法。 RNN时序数据集构建 时序数据处理中,为了训练RNN模型,我们常常会使用滑动窗口的方式构建数据集。 以“前60天的历史激活数数值预测未来激活数”为例,如果我们有200天的数据,那么可以构建如下的数据对: 1-60天的数据来预测第61天的数据 2-61天的数据来预测第62天的数据 3-62天的数据来预测第63天的数据 ... 139-198天的数据来预测第199天的数据 140-199天的数据来预测第200天的数据 这样,我们就构建了一个包含140个样本的数据集,每个样本有60个特征,可以用来训练RNN模型。 希望这可以帮助你更好地理解这两个案例的区别以及RNN时序数据集的构建方法。

    2022-03-19
    2
    1
  • 纯新手求轻喷
    请问老师,如果我的业务受到时间影响非常大(如电商促销节点、气候变化),能否考虑把时间数据加到模型里呢。 如果我有过去n年的历史数据,想预测本年度4季度的数据,如何能将同期的数据,在一个整年度上利用起来。

    作者回复: 对的,时序数据集完全可以加入历史数据信息,也可以把时间作为特征输入模型,这样的模型才更加完整。 网上有很多值得参考的带时间特征的LSTM处理样例,下面是我随便找的一个,你可以参考。 https://www.kaggle.com/ieshaan/delhi-climate-time-series-lstm

    2021-10-09
  • 纯新手求轻喷
    请问老师,如何对未知数据预测呢。上述案例中,预测输入的数据,是测试集数据呀

    作者回复: 对的,这是这个示例本身的问题。它在预测曲线的时候,是使用了要预测的时刻的过去50个时间点的特征,严格说,的确可以算作数据泄露。那么你可以学习下面这样的数据集,其中包含日期,和相关日期的温度、湿度、气压、风速等多个特征,这样,就有很多的信息来根据日期来预测未来某个特定日期的标签。(不过,也很难知道未来某天的风速、湿度、气压。。。对吧)。因此,我整体感觉预测未来的确似乎是个伪命题。。。。要预测未来,还得先了解未来,这怎么可能呢。 https://www.kaggle.com/sumanthvrao/daily-climate-time-series-data

    2021-10-08
    3
  • 纯新手求轻喷
    老师,请问下,最后预测的时候,预测的时候,输入的数据是x_test,x_test 里面是包含了已知的真实数据的,这是怎么理解的呢?

    作者回复: 我在另外一个类似的问题的回答中给出了我的一些看法,和一个其它类型的时序数据集。

    2021-10-08
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部