我正在尝试此链接http://deeplearning.net/tutorial/lstm.html中的代码,但将imdb数据更改为我自己的代码。这是我的结果的屏幕截图。
我想确定运行LSTM以进行情绪分析的整体准确性,但无法理解输出。列车,有效值和测试值打印多次,但通常是相同的值。
非常感谢任何帮助。
答案 0 :(得分:0)
它打印的值由以下函数计算:
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%的准确度。
您的验证准确性与列车精度相比如此之高的事实有点可疑,我会追踪预测,看看我们的验证集是否有代表性,或者太小。