本記事では機械学習の分類問題において使われる評価指標「F値」の値の取りうる値の範囲ついて解説します。
機械学習の評価指標の説明を上司にしていたときのことです。
F値の値の取りうる値の範囲ってどうなるの?
PrecisionやReallの値が両方0の場合、0で割ることになるからF値は0にはならないよね?
・・・
即答できないので、考えがまとまったら回答します。
F値のことをよく理解していなかったせいで、上記のような状態になってしまいました。
自分の直感的には0になりえると思うのだが、計算式的には上司の言うことは正しいし、本当にそうなるのか証明できなかったため、考えて答えますと一旦保留にしました。
本記事を読んでいるあなたは同じことを聞かれた場合、即答できますか?
本記事ではそんなF値の取りうる値の範囲を解説します。
本記事を読むことでF値の取りうる値の範囲なんて即答しちゃってください。
わざわざF値の取りうる値の範囲で悩んで時間を浪費しないで、もっと有益なことに時間を使ってください。F値の値の取りうる範囲で悩むより、早く家帰って休むことのほうが大事ですよ!
結論として、F値の値の取りうる範囲は$0 \le F値 \le100$だと考えています。
本記事の信憑性として執筆者はシステムエンジニアをやっています。
データサイエンス系の仕事歴は4年くらいです。
※本発言は一個人の発言です。本解釈のご利用は自己責任でお願いします。
※個人の発信であり、会社とは一切関係ありません。
F値を求める式
F値の概要を復習したい人はこちら>>>機械学習の評価指標「F値」を初心者・概要だけ理解したい人向けに数式を使わずに解説!
まず前提としてF値の算出式を説明しておきます。
$F値 = \frac{2 \times Precision \times Recall}{Precision + Recall}$
F値はPrecision(適合率)とRecall(再現率)をベースに計算されます。
この式が本記事の大前提となりますので、頭に入れてください。
F値の取りうる値の範囲に0は含まない派の考え方
F値の取りうる値の範囲は$0<F値\le100$ではないのかという上司の考えについて解説します。
F値を求める式の分母を見ていただくと上司の言っていたことがわかります。
まず、PrecisionとRecallは両方とも0というパターンがあり得ます。
$F値 = \frac{2 \times 0 \times 0}{0 + 0}$
PrecisionとRecallが0になった場合、上記の通り、0で割ることになりますが、数学的に0で割ることはタブーとされています。(0割が気になる人は「0で割る 数学」などで調べてください)
上記からF値は0にはなり得ないことになります。
よって、F値の取りうる値の範囲は$0<F値\le100$になります。
これが上司の言い分です。
※数学がめちゃくちゃ得意というわけではないので、間違いがあれば教えて下さい。
F値の取りうる値の範囲に0を含む派の考え方
0にならないという主張に違和感があったので、PrecisionとRecallのそれぞれの求め方から考えてみることにしました。
$Precision = \frac{TP}{TP+FP}$
$Recall = \frac{TP}{TP+FN}$
両方の指標がゼロになるケースと0除算が発生するのは次の2パターンです。
- TPのみが0の場合(FP、FNはゼロではない)
- TP、FP、FNがすべて0の場合
2.の場合は0割になってしまうため、PrecisionとRecallも0になることはないため、F値も0にならないことになってしまいます。
しかし、1.のケースに着目してみます。
ここでTP+FP=A,TP+FN=Bと置き換えます。
①$Precision = \frac{TP}{A}$
②$Recall = \frac{TP}{B}$
上記の式をF値を求める式に代入します。
$F値 = \frac{2 \times Precision \times Recall}{Precision + Recall}$
①と②を代入します。
$F値 = \frac{2 \times \frac{TP}{A} \times \frac{TP}{B}}{\frac{TP}{A} + \frac{TP}{B}}$
分母をABで通分します。
$F値 = \frac{2 \times {TP} \times \frac{TP}{AB}}{\frac{TPB}{AB} + \frac{TPA}{AB}}$
分母のTPをくくりだします。
$F値 = \frac{2 \times TP \times \frac{TP}{AB}}{\frac{TP(A+B)}{AB}}$
$\frac{TP}{AB}$は分母分子にあるので、消すことができます。
$F値 = \frac{2 \times TP}{A + B}$
最後にA+Bをもとの変数に戻します。
$F値 = \frac{2 \times TP}{TP+ FN + TP + FN}$
2.のケースでは、FPとFNはゼロではないため、0割にはなりません。
TPが0でもFPかFNが0でなければ分母が0にはならないため、F値は0をとることができます。
よって、F値の値の取りうる範囲は$0 \le F値 \le100$となります。
F値の取りうる値の範囲まとめ
上司にF値の値の取りうる範囲は$0 < F値 \le100$となるのでは?と言われ即答できず困りました。
そこで、F値の元となる数を用いてF値を計算することでF値の値の取りうる範囲は$0 \le F値 \le100$になりました。
F値は0になりえます!
ちなみにこの説明で上司には納得していただいたと個人的には思ってます。
機械学習おすすめテキスト↓です。
コメント