KerasのメトリクスにF値がないので作ってみた
まずはコード
概要
Metricクラスを継承してF値クラスを作成
なぜkerasにF値が用意されてないのか
下のリンクを見るとわかるように、元々はあったのに削除されています。
一体なぜ?以下のURLに書いてありました。
つまり、
らしいです。
つまり、データ集合a, bとメトリクスMがあったとき、
mean(M(a), M(b)) ≠ M(a+b)
となるものはKerasがバージョン2になるときに削除されたようです。
そこで
metrics_utils.update_confusion_matrix_variablesを用いて混同行列(confusion matrix)をバッチごとに更新している(?)Recallの実装を参考にF値を求めてみました。
正直あってる自信ない…
間違ってたらご意見お願いします…
修正
2021/07/03:GitHub上のコードの誤字を修正しました。
旧:def reset_state(self):
新:def reset_states(self):
2022/01/20:追記
TensorFlow AddonsにF値の実装がありました。
こちらです。
かなり前に見つけてたのに記事の更新を忘れていました…。