Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance LSTM评估尺度MAE解释_Performance_Lstm - Fatal编程技术网

Performance LSTM评估尺度MAE解释

Performance LSTM评估尺度MAE解释,performance,lstm,Performance,Lstm,我很难理解LSTM模型的性能,因为我将我的模型总结如下: X_train.shape (120, 7, 11) y_train.shape (120,) X_test.shape (16, 7, 11) y_test.shape (16,) model = keras.Sequential() model.add(keras.layers.LSTM(100, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences

我很难理解LSTM模型的性能,因为我将我的模型总结如下:

X_train.shape
(120, 7, 11)
y_train.shape
(120,)
X_test.shape
(16, 7, 11)
y_test.shape
 (16,)

model = keras.Sequential()
model.add(keras.layers.LSTM(100, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences = True))
model.add(keras.layers.Dropout(rate = 0.2))
model.add(keras.layers.LSTM(20))
model.add(keras.layers.Dropout(rate = 0.2))          
model.add(keras.layers.Dense(1))
model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.001), metrics = ['mae'])

history = model.fit(
X_train, y_train, 
epochs=60,
batch_size=5,
verbose= 0,
validation_split = 0.1,
shuffle=False
)
根据以下曲线图,MSE和MAE在训练过程中都会下降,其相应值接近于零

然而,正如我所意识到的,预测不够精确:

y_pred = model.predict(X_test)
model.evaluate(X_test,y_test)
[0.04673878103494644, 0.15574690699577332]


所以我的问题是,我的模型到底表现如何?我的意思是如何解释它的性能,因为MSE和MAE似乎都很低,但预测值不太令人信服。

你会看到MSE约为0.03,对应于平均误差0.17(取平方根,因为MSE是均方误差)。您在时间序列中看到的是介于0.0和0.4之间的误差,这似乎是合理的

我会进行更长时间的训练,看看是否可以进一步降低MSE(MSE对较大的异常值更敏感)。我不认为60个时代是一个很高的数字


我还注意到,您似乎只有120个数据点-这对于训练多层LSTM模型来说可能有点低,这些模型在处理大量数据时表现最好。您需要多少数据?-没有硬性规定,但您的LSTM大约有4000个权重,我听到的一个经验法则是使用3*权重数-因此12000个数据点-来源:谢谢您的回答,但我有一些问题。。。首先,您如何说MSE为0.03,因为测试数据的MSE为0.049,而列车和验证数据的MSE范围几乎为0.02到0.1。第二,离群值与历代数的关系如何?因为我了解了我所有的列车数据以及每个历元中所有的异常值,所以它们的影响无论如何都会起作用。最后但并非最不重要的一点是,在考虑功能数量的情况下,LSTM网络的列车数据数量是否有经验法则?如果MSE为0.049,则表明误差为0.049^0.5,即0.7(我刚刚从图表中读取了0.03)。有了更多的训练时间和更多的数据,您可能会发现网络训练得更好,错误也会减少。我在主要答案中添加了关于数据点数量的注释。