1

我正在尝试此链接http://deeplearning.net/tutorial/lstm.html中的代码,但将 imdb 数据更改为我自己的。这是我的结果的屏幕截图。

在此处输入图像描述

我想确定运行 LSTM 进行情绪分析的整体准确性,但无法理解输出。train、valid 和 test 值会打印多次,但通常是相同的值。

任何帮助将非常感激。

4

1 回答 1

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% 的准确度。

与火车准确度相比,您的验证准确度如此之高这一事实有点可疑,我会跟踪预测,看看我们的验证集是否不具代表性或太小。

于 2015-12-07T22:46:52.587 回答