今日のミーティングで出てきた謎.
precisionとrecallの平均をF値で表す理由.
なんでだろー,なんでだろー,っちゅーことで,
考えてみたのですが,
答え:皆がよく使ってるから,
な気がしてきました..
とりあえず,メモ.
precisionとかrecallは,
よくWebページの検索アルゴリズムの評価とかに
使われてます.
正確な定義は,他のまともなページを見てもらうことにして,
感覚で説明すると,
precisionは,回答にどれだけ正答が含まれるか,
recallは,正答をどれだけ発見できたか,
ですかね.
例えば,みかんとネーブルオレンジ(以下オレンジ)が混ぜこぜになった
ものを”みかん自動判定機”に流し込みます.
みかん自動判定機の判定性能を測るのに
precisionとrecallが使えるわけですね.
混ぜこぜになったものは全部で100個,
その内訳は,みかん40個,オレンジ60個だったとします.
「みかん自動判定機さん! みかんだけ頂戴!」
と言ってみると,みかん自動判定機さんは,ごろっと,
10個の答えを返してきました.
そのうち4個がみかんで,オレンジが6個もまじってたとします.
(ひでー...そんなん市場には出回らないっすよ..)
この判定機の性能は,
precision= 4 / 10= 0.4(10個出力中の4個が正解)
recall = 4 / 40 = 0.1(40個あるみかんのうち,4個を出力)
で,recallが低いなぁー,もっと沢山でるようにならんかなぁー,
とか改良を加えていくわけですね..
問題はですね,判定機が10社くらいから製品として販売されていた時,
どれがより良い判定機か,という判断をしたい時に,
評価指標が2つもあると,比べづらい,っちゅーことなんですね..
(本当に考えたいことから大分ずれてきたなぁ..まぁ,まぁ)
で,指標を1つにしたいんだったら,
平均とればぁー,ちゅー話になるわけですが,
こういう場合,足して2で割る相加平均ではなく,
調和平均(F値)がよく使われるんですね.
precisionをP,recallをRで現すと,
F = 2PR / (P + R)
上記の判定機をA社の判定機と呼ぶと,
A社の判定性能は,F値で現すと,
F = 2 * 0.4 * 0.1 / (0.4 + 0.1) = 0.16
うーん,なんでF値?
っていうのが考えたかったんですが,
やっぱり,慣例,じゃないかという気がします.
だって,例えばB社の判定機が,
「みかん自動判定機さん! みかんだけ頂戴!」
に,100個の答えを返したとすると,
(全部やん!)
この判定機の性能は,
precision= 40 / 100 = 0.4(100個出力中の40個が正解)
recall = 40 / 40 = 1.0(40個あるみかんのうち,40個を出力)
F = 2 * 0.4 * 1.0 /(0.4 + 1.0) = 0.6
ちゅーことで,F値だけを見ると,
B社の製品買い!っちゅーことになっちゃいます...
んなアホな..
ある程度,似たような傾向を示す範囲で使わないと,
ちょっと,F値だけで判定するっちゅーのは危険ですね..
って,ほんとに考えないといけない問題から,大分ずれてしまった..
しまった...
疲れていない脳で考える必要があるので,またにします.