当损失函数是均方误差时,如何定义准确度?是绝对百分比误差吗?
我使用的模型具有输出激活线性和编译 loss= mean_squared_error
model.add(Dense(1))
model.add(Activation('linear')) # number
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
Epoch 99/100
1000/1000 [==============================] - 687s 687ms/step - loss: 0.0463 - acc: 0.9689 - val_loss: 3.7303 - val_acc: 0.3250
Epoch 100/100
1000/1000 [==============================] - 688s 688ms/step - loss: 0.0424 - acc: 0.9740 - val_loss: 3.4221 - val_acc: 0.3701
Run Code Online (Sandbox Code Playgroud)
那么例如val_acc:0.3250是什么意思?Mean_squared_error应该是标量而不是百分比 - 不应该吗?那么val_acc - 均方误差,或平均百分比误差或其他函数?
根据维基百科上的MSE定义:https://en.wikipedia.org/wiki/Mean_squared_error
MSE是估计量质量的度量 - 它总是非负的,接近零的值更好.
这是否意味着价值val_acc: 0.0优于val_acc: 0.325?
编辑:我训练时精确度量输出的更多示例 - 随着我训练更多,精度会增加.虽然损失函数 - mse应该减少.是否为mse定义了准确度 - 它是如何在Keras中定义的?
lAllocator: After …Run Code Online (Sandbox Code Playgroud) regression machine-learning mean-square-error keras loss-function
如何在回归问题中为keras创建和显示精度度量,例如在将预测四舍五入到最接近的整数类之后?
虽然传统上对于回归问题没有有效地定义准确性,但是为了确定数据的序数类/标签,将问题视为回归是合适的.但是,那么计算精度度量也会很方便,无论是kappa还是其他类似的东西.这是一个要修改的基本keras样板代码.
from keras.models import Sequential
from keras.layers.core import Dense, Activation
model = Sequential()
model.add(Dense(10, 64))
model.add(Activation('tanh'))
model.add(Dense(64, 1))
model.compile(loss='mean_absolute_error', optimizer='rmsprop')
model.fit(X_train, y_train, nb_epoch=20, batch_size=16)
score = model.evaluate(X_test, y_test, batch_size=16)
Run Code Online (Sandbox Code Playgroud)