【发布时间】:2019-12-28 02:55:44
【问题描述】:
我正面临一个减少误报的问题,正负的大小之比约为。 1.7:1。 我从answer 了解到,使用精度、召回率、FScore,甚至根据成本不同地加权真阳性、假阳性、真阴性和假阴性来评估不同的模型来处理指定的分类任务。
由于 Precision, Recall, and FScore 已从 keras 中删除,我找到了一些方法可以在训练期间跟踪这些指标,例如 github repo keras-metrics。
此外,我还通过像这样定义精度来找到其他解决方案,
def precision(y_true, y_pred):
"""Precision metric.
Only computes a batch-wise average of precision.
Computes the precision, a metric for multi-label classification of
how many selected items are relevant.
"""
true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
precision = true_positives / (predicted_positives + K.epsilon())
return precision
但是,由于这些方法在训练期间跟踪指标,并且所有这些方法都声称是 batch-wise average 而不是全局值。
我想知道在训练期间跟踪这些指标有多大必要。或者我在训练期间只关注loss 和accuracy,并使用scikit-learn 之类的验证函数评估所有模型,以将这些指标与全局方法进行比较。
【问题讨论】:
标签: python tensorflow keras deep-learning loss-function