import keras.backend as K
def f1_score(y_true, y_pred):
# Count positive samples.
#c1 = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
#c2 = K.sum(K.round(K.clip(y_pred, 0, 1)))
#c3 = K.sum(K.round(K.clip(y_true, 0, 1)))
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)))
possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
p = true_positives / (predicted_positives + K.epsilon())
r = true_positives / (possible_positives + K.epsilon())
beta = 1 # fmeasure
bb = beta**2
fbeta_score = (1 + bb) * (p * r) / (bb * p + r + K.epsilon()) return
fbeta_score
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy', f1_score])
No comments:
Post a Comment