使用Keras评估模型时的测试分数与测试准确性

时间:2017-04-24 13:45:04

标签: neural-network keras

我使用Keras库实现的神经网络,以下是训练期间的结果。最后,它打印测试分数和测试准确性。我无法确切地知道得分代表什么,但我认为准确度是运行测试时正确的预测数量。

  

大纪元1/15 1200/1200 [==============================] - 4s - 损失:   0.6815 - acc:0.5550 - val_loss:0.6120 - val_acc:0.7525

     

大纪元2/15 1200/1200 [==============================] - 3s - 损失:   0.5481 - acc:0.7250 - val_loss:0.4645 - val_acc:0.8025

     

大纪元3/15 1200/1200 [==============================] - 3s - 损失:   0.5078 - acc:0.7558 - val_loss:0.4354 - val_acc:0.7975

     

Epoch 4/15 1200/1200 [==============================] - 3s - 损失:   0.4603 - acc:0.7875 - val_loss:0.3978 - val_acc:0.8350

     

大纪元5/15 1200/1200 [==============================] - 3s - 损失:   0.4367 - acc:0.7992 - val_loss:0.3809 - val_acc:0.8300

     

大纪元6/15 1200/1200 [==============================] - 3s - 损失:   0.4276 - acc:0.8017 - val_loss:0.3884 - val_acc:0.8350

     

大纪元7/15 1200/1200 [==============================] - 3s - 损失:   0.3975 - acc:0.8167 - val_loss:0.3666 - val_acc:0.8400

     

大纪元8/15 1200/1200 [==============================] - 3s - 损失:   0.3916 - acc:0.8183 - val_loss:0.3753 - val_acc:0.8450

     

大纪元9/15 1200/1200 [==============================] - 3s - 损失:   0.3814 - acc:0.8233 - val_loss:0.3505 - val_acc:0.8475

     

大纪元10/15 1200/1200 [==============================] - 3s - 损失:   0.3842 - acc:0.8342 - val_loss:0.3672 - val_acc:0.8450

     

Epoch 11/15 1200/1200 [==============================] - 3s - 损失:   0.3674 - acc:0.8375 - val_loss:0.3383 - val_acc:0.8525

     

Epoch 12/15 1200/1200 [==============================] - 3s - 损失:   0.3624 - acc:0.8367 - val_loss:0.3423 - val_acc:0.8650

     

大纪元13/15 1200/1200 [==============================] - 3s - 损失:   0.3497 - acc:0.8475 - val_loss:0.3069 - val_acc:0.8825

     

Epoch 14/15 1200/1200 [==============================] - 3s - 损失:   0.3406 - acc:0.8500 - val_loss:0.2993 - val_acc:0.8775

     

大纪元15/15 1200/1200 [==============================] - 3s - 损失:   0.3252 - acc:0.8600 - val_loss:0.2960 - val_acc:0.8775

     

400/400 [==============================] - 0s

     

考试成绩:0.299598811865

     

测试准确度:0.88

Keras documentation,我仍然不明白得分是多少。对于评估函数,它说:

  

返回损失值&测试模式下模型的度量值。

我注意到的一点是,当测试精度较低时,分数较高,而当准确度较高时,分数较低。

2 个答案:

答案 0 :(得分:15)

供参考,代码的两个相关部分:

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

score, acc = model.evaluate(x_test, y_test,
                            batch_size=batch_size)
print('Test score:', score)
print('Test accuracy:', acc)

分数是对给定输入的损失函数的评估。

培训网络正在寻找最小化损失函数(或成本函数)的参数。

此处的费用函数为binary_crossentropy

对于目标T和网络输出O,二进制交叉熵可以定义为

f(T,O)= - (T * log(O)+(1-T)* log(1-O))

所以你看到的分数是对它的评价。

如果你输入一批输入,它很可能会返回平均损失。

所以是的,如果你的模型损失较低(在测试时),它通常应该有较低的预测误差。

答案 1 :(得分:1)

在训练过程中经常使用损失来找到模型的“最佳”参数值(例如神经网络中的权重)。您尝试通过更新权重来优化培训。

从应用的角度来看,准确度更高。找到上述优化参数后,您可以使用此指标评估模型预测与真实数据的准确度。

这个答案提供了详细信息:

How to interpret "loss" and "accuracy" for a machine learning model