評価の指標を1つじゃない
はじめに
機械学習による分類を行った場合に、その手法が従来より優れているか否かを判断したいという場面に遭遇します。
その際、分類を適切にできた数の割合である「正解率」に着目したくなりますが、実は評価の方法はコレ以外にも複数存在します。
正解率
正解率は、テストデータが個ある際に、予測結果が正解であった数を
として
で表現されます。
最も直感的で分かりやすい評価指標です。
再現率
クラス分類でクラスが
の
個があったとしましょう。
「再現率」という場合には、「クラスに対する精度」という具合に、あるクラスについて評価をすることになります。
クラスのテストデータが
個あるとしましょう。理想的には学習によって得られた分類器が、
個のデータ全てを
と判定して欲しいところですが、実際にはそうはいきません。
ここでのテストデータ
個のうち
個が正しく分類され、
個が間違って他のクラスに分類されたとしましょう(他のクラスのどれであるかは問わない)。このとき、
に対する再現率は
というように定義されます。
本来すべて分類が上手くいけば個が
と分類されるべきです。実際には
個しか分類されなかった場合に、その割合が再現率となります。
再現率と言った時には、あるクラスに着目しており、そのクラスに属するデータのみで議論をしているということに注意してください。端的に言えば再現率は「クラスのすべてデータに対して実際にクラス
と判断できる割合」です。
同様に、クラスについて精度を考えたければ、クラス
に属する
個のデータのうち何個が正しく
と判断されたかの割合を考えればいいです。
精度
クラス分類でクラスが
の
個があったとしましょう。
こちらもに対する精度という具合に扱います。
分類器がに属する
個のデータを正しく
に分類したとしましょう。しかし場合によっては、
に属していない
個のデータも
と分類してしまうこともあるでしょう。
このとき、の精度とは
と定義されます。
再現率のときとは違い、分母の個のデータは
に属していないデータです。
精度の場合は着目しているクラス以外のデータも指標に混在していることに注意してください。端的に言えば精度とは、「クラスと判断したすべてのデータのうち、実際に
であった割合」です。
分割表
再現率と精度を計算する際に、あるクラスに対する分割表を使うと便利です。
分割表とは
に属するデータを
と分類した数
に属さないデータを
と分類した数
に属するデータを
以外に分類した数
に属さないデータを
以外に分類した数
を以下の表形式にまとめたものです。
の再現率はこの表に従えば
と表記されることとなります。
の精度はこの表に従えば
と表記されることになります。
評価の方法
精度と再現率のトレードオフ
再現率は「クラスのすべてデータに対して実際にクラス
と判断できる割合」で、精度は「クラス
と判断したすべてのデータのうち、実際に
であった割合」でした。
もしも分類器が、少しでもっぽいなと感じれば
と判定してしまうようになっていれば、再現率は向上します。一方で、
でないものも混じってくるため精度は落ちます。
逆に、かなりである確信を持った時のみ
と判定するようにした場合は、
に属するはずのデータも弾く場合があるため再現率は低下する一方で、
でないようなデータをかなりの確率で弾けるために精度は向上します。
F値
分類器は再現率と精度に対してトレードオフを持っているため、これらを統合して評価できる指標が必要になります。その指標の1つがF値です。
F値は、再現率を、精度を
とした場合に
で定義されます(調和平均)。F値を大きくするような分類器を良いものと判断します。
break-even
精度と再現率が等しくなるような点を「break-even」とよびます。
精度と再現率について座標にプロットしたデータを取り、
との交点を求めますが、プロットした点が必ずしも
上にあるとは限らないため、通常は近い2点を線形補間して求めます。
注意点
精度や再現率、F値はいずれにしても「とあるクラス」に着目しているものです。
精度も再現率も、データがに属するか否かの二値を評価しているのであって、
に属するはずが
に分類しているとか、
のデータを
と判定しているとか、細かいことまでは評価していません。あるクラスに対して正しいか否かであり、どのような間違え方をしているかまでは評価できないということです。
参考