Keras - 使用 LSTM RNN 进行时间序列预测
-
简述
在本章中,让我们编写一个简单的基于长短期记忆(LSTM)的 RNN 来进行序列分析。序列是一组值,其中每个值对应于特定的时间实例。让我们考虑一个阅读句子的简单例子。阅读和理解一个句子包括按照给定的顺序阅读单词,并尝试理解每个单词及其在给定上下文中的含义,最后以积极或消极的情绪理解句子。这里将单词视为值,第一个值对应第一个单词,第二个值对应第二个单词,依此类推,将严格保持顺序。序列分析在自然语言处理中经常用于查找给定文本的情感分析。让我们创建一个 LSTM 模型来分析 IMDB 电影评论并找到它的正面/负面情绪。序列分析的模型可以表示如下 -该模型的核心特征如下 --
输入层使用具有 128 个特征的嵌入层。
-
第一层,Dense 由 128 个单元组成,正常 dropout 和经常 dropout 设置为 0.2。
-
输出层,Dense由 1 个单元和“sigmoid”激活函数组成。
-
使用binary_crossentropy作为损失函数。
-
使用adam作为优化器。
-
使用准确性作为指标。
-
使用 32 作为批量大小。
-
使用 15 作为 epoch。
-
使用 80 作为单词的最大长度。
-
使用 2000 作为给定句子中的最大单词数。
-
-
第 1 步:导入模块
让我们导入必要的模块。 -
第 2 步:加载数据
让我们导入 imdb 数据集。这里,-
imdb是 Keras 提供的数据集。它代表了电影及其评论的集合。
-
num_words表示评论中的最大单词数。
-
-
第 3 步:处理数据
让我们根据我们的模型更改数据集,以便将其输入到我们的模型中。可以使用以下代码更改数据 -这里,sequence.pad_sequences将形状为(data)的输入数据列表转换为形状为(data, timesteps)的 2D NumPy 数组。基本上,它将时间步长概念添加到给定数据中。它生成长度为maxlen的时间步长。 -
第 4 步:创建模型
让我们创建实际模型。这里,我们使用嵌入层作为输入层,然后添加了 LSTM 层。最后,密集层用作输出层。 -
第 5 步:编译模型
让我们使用选定的损失函数、优化器和指标来编译模型。 -
第 6 步:训练模型
L让我们使用fit()方法训练模型。执行应用程序将输出以下信息 - -
第 7 步 - 评估模型
让我们使用测试数据评估模型。执行上述代码将输出以下信息 -