我正在尝试此链接http://deeplearning.net/tutorial/lstm.html中的代码,但将 imdb 数据更改为我自己的。这是我的结果的屏幕截图。
我想确定运行 LSTM 进行情绪分析的整体准确性,但无法理解输出。train、valid 和 test 值会打印多次,但通常是相同的值。
任何帮助将非常感激。
我正在尝试此链接http://deeplearning.net/tutorial/lstm.html中的代码,但将 imdb 数据更改为我自己的。这是我的结果的屏幕截图。
我想确定运行 LSTM 进行情绪分析的整体准确性,但无法理解输出。train、valid 和 test 值会打印多次,但通常是相同的值。
任何帮助将非常感激。
它打印的值由以下函数计算:
def pred_error(f_pred, prepare_data, data, iterator, verbose=False):
"""
Just compute the error
f_pred: Theano fct computing the prediction
prepare_data: usual prepare_data for that dataset.
"""
valid_err = 0
for _, valid_index in iterator:
x, mask, y = prepare_data([data[0][t] for t in valid_index],
numpy.array(data[1])[valid_index],
maxlen=None)
preds = f_pred(x, mask)
targets = numpy.array(data[1])[valid_index]
valid_err += (preds == targets).sum()
valid_err = 1. - numpy_floatX(valid_err) / len(data[0])
return valid_err
它很容易理解,它计算的是1 - accuracy
,其中准确度是正确标记的样本的百分比。换句话说,你在训练集上获得了大约 72% 的准确度,在验证集上获得了近 95% 的准确度,在测试集上获得了 50% 的准确度。
与火车准确度相比,您的验证准确度如此之高这一事实有点可疑,我会跟踪预测,看看我们的验证集是否不具代表性或太小。