了解 lstm 预测模型中的纪元、批量大小、准确性和性能提升

拉特内什

我是机器学习和 lstm 的新手。我指的是这个链接LSTM 用于多变量输入部分的编码器-解码器 LSTM 模型的多步预测

这是我重塑训练和测试集后的数据集描述。

print(dataset.shape)
print(train_x.shape, train_y.shape)
print((test.shape)

(2192, 15)
(1806, 14, 14) (1806, 7, 1)
(364, 15)

在上面我有n_input=14, n_out=7

这是我的 lstm 模型描述:

def build_model(train, n_input):
    # prepare data
    train_x, train_y = to_supervised(train, n_input)
    # define parameters
    verbose, epochs, batch_size = 2, 100, 16
    n_timesteps, n_features, n_outputs = train_x.shape[1], train_x.shape[2], train_y.shape[1]
    # reshape output into [samples, timesteps, features]
    train_y = train_y.reshape((train_y.shape[0], train_y.shape[1], 1))
    # define model
    model = Sequential()
    model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))
    model.add(RepeatVector(n_outputs))
    model.add(LSTM(200, activation='relu', return_sequences=True))
    model.add(TimeDistributed(Dense(100, activation='relu')))
    model.add(TimeDistributed(Dense(1)))
    model.compile(loss='mse', optimizer='adam')
    # fit network
    model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose)
    return model

在评估模型时,我得到的输出为:

Epoch 98/100
 - 8s - loss: 64.6554
Epoch 99/100
 - 7s - loss: 64.4012
Epoch 100/100
 - 7s - loss: 63.9625

根据我的理解:(如有不对请指正)

Here my model accuracy is 63.9625(通过查看最后一个纪元 100)。此外,这也不稳定,因为 epoch 99 和 epoch 100 之间存在差距。

以下是我的问题:

  1. 上面定义的纪元和批量大小与获得模型准确度有何关系?它的增量和减量如何影响模型精度?

  2. 我上面定义的 epoch、batch、n_input 对模型是否正确?

  3. 如何提高模型精度?上面的数据集大小对于这个模型来说是否足够好?

我无法链接所有这些参数,请帮助我了解如何通过上述因素实现更高的准确性。

放手吧

具有非常大的纪元大小不一定会提高您的准确性。Epoch 大小可以将准确度提高到一定的限度,超过这个限度你就会开始过度拟合你的模型。非常低的值也会导致欠拟合。看到这个所以看看 epoch 99 和 epoch 100 之间的巨大差异,你已经可以看出你对模型过度拟合了。根据经验,当您注意到准确度停止增加时,这就是理想的 epoch 数,通常应该在 1 到 10 之间。100 似乎已经太多了。

批量大小不会影响您的准确性。这仅用于根据 GPU 中的内存来控制速度或性能。如果你有巨大的内存,你可以有一个巨大的批量大小,所以训练会更快。

您可以做些什么来提高准确性: 1. 增加用于训练的数据集。2. 尝试改用卷积网络。这个 youtube 频道或简而言之,在卷积网络上找到更多信息,CNN 可以帮助您确定在训练模型时要关注哪些特征。3. 尝试其他算法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

了解我的LSTM模型的结构

来自分类Dev

了解Tensorflow LSTM模型输入吗?

来自分类Dev

通过示例了解LSTM

来自分类Dev

了解LSTM架构中的密集层(标签和日志)

来自分类Dev

无法了解下面的LSTM网络中的输出形状

来自分类Dev

使用 Keras 了解 LSTM 中的 input_shape 参数

来自分类Dev

LSTM 的批量大小

来自分类Dev

了解Tensorflow LSTM输入形状

来自分类Dev

了解openAI 5的模型(1024个单元的LSTM强化学习)

来自分类Dev

激活='softmax'时了解tensorflow keras LSTM

来自分类Dev

验证和测试的准确性良好,但预测不佳 keras lstm

来自分类Dev

如何检查LSTM的准确性?

来自分类Dev

了解LSTM自动编码器的输出,并使用它来检测序列中的异常值

来自分类Dev

培训和验证LSTM问题:准确性和召回问题

来自分类Dev

LSTM预测直线

来自分类Dev

了解分支预测

来自分类Dev

了解分支预测效率

来自分类Dev

TensorFlow LSTM生成模型

来自分类Dev

lstm模型的输出形状

来自分类Dev

了解Clojure换能器的性能

来自分类Dev

了解VS性能分析

来自分类Dev

了解节点js性能

来自分类Dev

了解R中“预测”的输出

来自分类Dev

了解Django的模型类

来自分类Dev

了解python的内存模型

来自分类Dev

了解Django的模型类

来自分类Dev

了解页面大小

来自分类Dev

在 keras 中输入 LSTM

来自分类Dev

了解FeatureHasher,碰撞和矢量大小的权衡