keras中的自定义指标用于评估符号预测

时间:2017-10-13 17:30:02

标签: python keras

我正在研究回归问题。这个问题的一个性能指标是"符号准确度",这意味着我想看看预测值是否与真实值具有相同的符号。我知道mse可以某种方式显示预测值和真实值之间的接近程度,但我希望在验证过程中看到符号准确性。

更具体地说,在训练之后,我使用以下方式检查准确性。我想要自定义指标是在验证过程中实现以下方式。 (np.multiply(predict_label,test_label)>0).sum()/float(predict_label.shape[0])

1 个答案:

答案 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]