【问题标题】:How do you compute accuracy in a regression model, after rounding predictions to classes, in keras?在将预测四舍五入后,如何在 keras 中计算回归模型的准确性?
【发布时间】:2017-07-28 16:02:19
【问题描述】:

您将如何在 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)

【问题讨论】:

    标签: python machine-learning tensorflow deep-learning keras


    【解决方案1】:

    我使用这样的舍入精度:

    from keras import backend as K
    
    def soft_acc(y_true, y_pred):
        return K.mean(K.equal(K.round(y_true), K.round(y_pred)))
    
    model.compile(..., metrics=[soft_acc])
    

    【讨论】:

    • 知道如何实现 K.equal,但公差为 +/- 某个值(例如,如果在某个 epsilon 差异范围内,则认为张量相等)?
    【解决方案2】:

    Thomas 的回答几乎概括了这个问题。只是一个小补充,因为我被困在这个。这里的“K”是

    import keras.backend as K
    
    def soft_acc(y_true, y_pred):
    return K.mean(K.equal(K.round(y_true), K.round(y_pred)))
    
    model.compile(..., metrics=[soft_acc])
    

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2019-05-06
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 2022-01-09
      • 1970-01-01
      • 2023-01-03
      相关资源
      最近更新 更多