KerasでF1スコアをモデルのmetrics(評価関数)に入れて訓練させてたら、えらい低い値が出てきました。「なんかおかしいな」と思ってよく検証してみたら、とんでもない穴があったので書いておきます。 環境:Keras v2.2.4 要点 KerasのmetricsにF1スコアを入れることはできるが、調和平均で出てくる値をバッチ間の算術平均で計算しているので正確な値ではない 正確な値を計算したかったらmetricsではなく、コールバックでエポックの最後に一括で求めるべき F1スコアとは Precision-recallのトレードオフの最適解を求めるための尺度。特に精度が意味をなさなくなる歪んだデータに対して有効。F1スコアについて知っている方は飛ばしていいです。 歪んだデータとは 2クラス分類を考えるとしましょう。設定は猫と犬の分類、メールがスパムかスパムではないか、なんでもいいです。2ク
