作者回复: 嗯,神经网络的参数、原理细节,这里的确不是很深入。这里,我们讲到的程度是大概体会一下神经网络模型如何操作的。以此为基础,进一步学习。 我强烈推荐一本书:Keras之父François Chollet写的《Python深度学习》,这本书很容易读,而且权威。因为是Keras设计者自己对深度学习神经网络的理解,也是他写给初学者的。我认为应该拿来读一下。
作者回复: 正如另外一个同学留言所解释的那样,这两个案例在表面上确实都是基于历史数据来预测未来的信息,但它们的核心问题和数据性质是有所不同的。 案例差异 “根据前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时序数据集的构建方法。
作者回复: 对的,时序数据集完全可以加入历史数据信息,也可以把时间作为特征输入模型,这样的模型才更加完整。 网上有很多值得参考的带时间特征的LSTM处理样例,下面是我随便找的一个,你可以参考。 https://www.kaggle.com/ieshaan/delhi-climate-time-series-lstm
作者回复: 对的,这是这个示例本身的问题。它在预测曲线的时候,是使用了要预测的时刻的过去50个时间点的特征,严格说,的确可以算作数据泄露。那么你可以学习下面这样的数据集,其中包含日期,和相关日期的温度、湿度、气压、风速等多个特征,这样,就有很多的信息来根据日期来预测未来某个特定日期的标签。(不过,也很难知道未来某天的风速、湿度、气压。。。对吧)。因此,我整体感觉预测未来的确似乎是个伪命题。。。。要预测未来,还得先了解未来,这怎么可能呢。 https://www.kaggle.com/sumanthvrao/daily-climate-time-series-data
作者回复: 我在另外一个类似的问题的回答中给出了我的一些看法,和一个其它类型的时序数据集。