我正在研究回归问题。这个问题的一个性能指标是"符号准确度",这意味着我想看看预测值是否与真实值具有相同的符号。我知道mse
可以某种方式显示预测值和真实值之间的接近程度,但我希望在验证过程中看到符号准确性。
更具体地说,在训练之后,我使用以下方式检查准确性。我想要自定义指标是在验证过程中实现以下方式。
(np.multiply(predict_label,test_label)>0).sum()/float(predict_label.shape[0])
答案 0 :(得分:1)
您可以采用与准确性类似的方式实现它:
urllib.request.urlopen("https://localhost:4443", context=context)
测试它:
def sign_accuracy(y_true, y_pred):
return K.mean(K.greater(y_true * y_pred, 0.), axis=-1)
当您拨打y_true = np.random.rand(5, 1) - 0.5
y_pred = np.random.rand(5, 1) - 0.5
acc = K.eval(sign_accuracy(K.variable(y_true), K.variable(y_pred)))
print(y_true)
[[ 0.20410185]
[ 0.12085985]
[ 0.39697642]
[-0.28178138]
[-0.37796012]]
print(y_pred)
[[-0.38281826]
[ 0.14268927]
[ 0.19218624]
[ 0.21394845]
[ 0.04044269]]
print(acc)
[ 0. 1. 1. 0. 0.]
或fit()
时,Keras会自动获取0轴上的平均值,因此您无需求和evaluate()
并将其除以acc
此指标也可以应用于多维变量:
y_pred.shape[0]