我就废话不多说了,大家还是直接看代码吧!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
### 以下链接里面的code
import numpy as np
from keras.callbacks import Callback
from sklearn.metrics import confusion_matrix, f1_score, precision_score, recall_score
class Metrics(Callback):
def on_train_begin( self , logs = {}):
self .val_f1s = []
self .val_recalls = []
self .val_precisions = []
def on_epoch_end( self , epoch, logs = {}):
val_predict = (np.asarray( self .model.predict( self .model.validation_data[ 0 ]))). round ()
val_targ = self .model.validation_data[ 1 ]
_val_f1 = f1_score(val_targ, val_predict)
_val_recall = recall_score(val_targ, val_predict)
_val_precision = precision_score(val_targ, val_predict)
self .val_f1s.append(_val_f1)
self .val_recalls.append(_val_recall)
self .val_precisions.append(_val_precision)
print “ — val_f1: % f — val_precision: % f — val_recall % f” % (_val_f1, _val_precision, _val_recall)
return
metrics = Metrics()
model.fit(
train_instances.x,
train_instances.y,
batch_size,
epochs,
verbose = 2 ,
callbacks = [metrics],
validation_data = (valid_instances.x, valid_instances.y),
)
|
补充知识:Keras可使用的评价函数
1:binary_accuracy(对二分类问题,计算在所有预测值上的平均正确率)
binary_accuracy(y_true, y_pred)
2:categorical_accuracy(对多分类问题,计算在所有预测值上的平均正确率)
categorical_accuracy(y_true, y_pred)
3:sparse_categorical_accuracy(与categorical_accuracy相同,在对稀疏的目标值预测时有用 )
sparse_categorical_accuracy(y_true, y_pred)
4:top_k_categorical_accuracy(计算top-k正确率,当预测值的前k个值中存在目标类别即认为预测正确 )
top_k_categorical_accuracy(y_true, y_pred, k=5)
5:sparse_top_k_categorical_accuracy(与top_k_categorical_accracy作用相同,但适用于稀疏情况)
sparse_top_k_categorical_accuracy(y_true, y_pred, k=5)
以上这篇在keras里面实现计算f1-score的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_23069955/article/details/80709037