混合行列、適合率、再現率、F値、MCC
目次
概要#
再現率とか適合率とか、どっちが何を意味していたんだっけといつもわからなくなって調べている気がするので、ここにまとめる。
とりわけ、適合率と再現率がトレードオフの関係にあるというのが、なんの前提もなく言われることに違和感があったので、その違和感を紐解いた。
ついでに F 値が適合率と再現率の調和平均である理由が「トレードオフの関係にあるから」というのもしっくりこないので、それも考えたものを書いておく。
またついでに、 F 値では取りこぼしてしまう例と、それを補うさらに良さそうな指標である MCC (Matthews Correlation Coefficient) についても述べる。
混合行列#
混合行列 は、分類問題の結果を表す行列である。以下のような形式で表される。
陽性と予測 | 陰性と予測 | |
---|---|---|
ほんとに陽性 | True Positive (TP) | False Negative (FN) |
ほんとに陰性 | False Positive (FP) | True Negative (TN) |
- True Positive (TP): 陽性と予測され、実際に陽性である
- True Negative (TN): 陰性と予測され、実際に陰性である
- False Positive (FP): 陽性と予測され、実際に陰性である(偽陽性)
- False Negative (FN): 陰性と予測され、実際に陽性である(偽陽性)
以下にコメント
- それぞれのセルには自然数が入るイメージ。数え上げた数が入るかんじ。
- まず読み方。二文字目が「予測」を表す (Positive or Negative)。その予測結果が正しいかどうか(True or False)が一文字目で表現されている。 「評価 + 予測」
- 「陽性と予測された人は結局何人?」という場合は P が 2 文字目にあるセルを足し算する。つまり、TP + FP が陽性と予測された人の総数。同様に、FN + TN が陰性と予測された人の総数。
- 「(予測にかかわらず)実際に陽性だった人は何人?」という場合は、TP + FN が陽性の総数。同様に、TN + FP が陰性の総数。
適合率と再現率#
適合率と再現率は、いずれも分類問題の評価指標である。
適合率(precision) は以下の式で表される。
$$ \text{Precision} = \frac{TP}{TP + FP} $$
要するに、陽性と予測されたもののうち、正しく陽性と予測されたものの割合を表す。
適合率の直感的な意味は、陽性と判断されたことへの信頼性。適合率が高いということは、陽性と判断されたものが実際に陽性である確率が高いということを意味する。
再現率(recall) は以下の式で表される。
$$ \text{Recall} = \frac{TP}{TP + FN} $$
要するに、実際に陽性であるもののうち、正しく陽性と予測されたものの割合を表す。
再現率の直感的な意味は、実際に陽性であるものをどれだけ見逃さないか。再現率が高いということは、実際に陽性であるものを見逃す確率が低いということを意味する。
例えば「猫判別機」を猫と犬の画像群に対して適用した場合を考える。 適合率は「猫と予測されたもののうち、実際に猫であるものの割合」 になる。 再現率は「実際に猫であるもののうち、猫と予測されたものの割合」 になる。
適合率と再現率はトレードオフの関係にある#
分類問題を考えるときに、理想的な状態の一つは、適合率と再現率がどちらも高い状態になることである。どちらか一方が高いだけでは十分ではない:
天気予報だと以下のようなかんじ:
- 適合率が高くかつ再現率が低い場合: 「晴れの予報だけは間違ってはいけないと過剰にビビっているがゆえ、ほとんど毎日雨と予報してしまう。たまに晴れと予報するけれども、そのときはほぼ間違いなく晴れ」
- 適合率が低くかつ再現率が高い場合: 「ほぼすべての天気を晴れと予報してしまう。たしかに晴れの日はほぼすべて予報できているが、雨の日もほとんど晴れの日と予報してしまっているので、予報の意味がない」
適合率と再現率が両方同時に高くありたいのだけど、おおよそその願いは叶わない。この 2 つの指標は “大抵の場合に” トレードオフの関係にある 。
ここで “大抵の場合に” と強調したのは、理論上トレードオフにならない状態も存在するから。それも含めて、以下でなぜこれが言えるのかを説明する。
ROC 曲線や AUC といったことを考えるときに出てくるグラフを考える。以下の例では「猫識別器」を考える。
以下の青色と黄色のグラフはそれぞれ犬と猫の画像の枚数を表している。青色のグラフは犬の画像の枚数、黄色のグラフは猫の画像の枚数を表している。各画像に対して猫識別器を適用すると、それぞれの画像に対して識別器が出力する確率が得られる。この確率ごとにそれぞれの画像の枚数を集計したのが青色と黄色のグラフである。
さて、 識別器の精度をコントロールする方法の一つは、識別器の出力する閾値を変えること である。このグラフの中に閾値を表現すると、適合率と再現率を計算するために必要な TP, FP, FN は以下のように表現できる。
この図では、適合率は
$$ \text{Precision} = \frac{\text{赤}}{\text{赤} + \text{青}} $$
となり、一方で再現率は
$$ \text{Recall} = \frac{\text{赤}}{\text{赤} + \text{黄}} $$
となる。
では、まず適合率を上げようとしてみよう。これは、閾値の操作として考えると、 閾値を上げる ことと同じ意味になる。というのも、閾値を上げると、自信を持って猫と予測できる画像だけを「猫」と判断するようなかんじだから。
このとき、以下のようなイメージになる。
このとき、適合率は
$$ \text{Precision} = \frac{\text{赤}}{\text{赤} + \text{青}} \approx 1 $$
となり、一方で再現率は
$$ \text{Recall} = \frac{\text{赤}}{\text{赤} + \text{黄}} \approx 0.5 $$
というところか。
一方で、再現率を上げようとしてみる。これは、閾値の操作として考えると、 閾値を下げる ことと同じ意味になる。というのも、閾値を下げると、とにかく猫画像を取りこぼさないように、間違いを大いに許容してしまうようなかんじだから。
このとき、以下のようなイメージになる。
このとき、適合率は
$$ \text{Precision} = \frac{\text{赤}}{\text{赤} + \text{青}} \approx 0.5 $$
となり、一方で再現率は
$$ \text{Recall} = \frac{\text{赤}}{\text{赤} + \text{黄}} \approx 1 $$
というところか。
これが、適合率と再現率がトレードオフの関係にある理由である。
同じ理由で、この分布次第では 適合率と再現率が同時に高くなることもある。例えば、以下のような分布の場合。
このとき、適合率は
$$ \text{Precision} = \frac{\text{赤}}{\text{赤} + \text{青}} \approx 1 $$
となり、一方で再現率は
$$ \text{Recall} = \frac{\text{赤}}{\text{赤} + \text{黄}} \approx 1 $$
というところか。
つまり、 必ずしもいつもトレードオフの関係にあるわけではない 。それは分布次第である。
調和平均と F 値#
このあとに F 値を説明する前に、 調和平均 について説明する。
正の数 $v_1$, $v_2$ の調和平均 $H$ は以下を満たす。
$$ {2 \over H} = {1 \over v_1} + {1 \over v_2} $$
これを理解する良い例は、現在地点から目的地までを往復するやつ。
- スタート地点からゴールまでの距離 1 を $v_1$ の速度で行く
- ゴール地点からスタートまで距離 1 くぉ $v_2$ の速度で帰る
- このとき、往復の距離 2 の平均速度を $H$ で表現する
このとき $H$ をいわゆる算術平均
$$ {v_1 + v_2 \over 2} $$
で表現したくなるが、これはちょっと違和感を覚える。例えば行きは 5 km/h で 2 時間歩いて、帰りは 60 km/h で 10 分で返ってきたとする。このとき、歩いている時間のほうが圧倒的に長いので平均速度は 5 km/h に近い値が妥当に思える。しかし、算術平均で計算すると 32.5 km/h になってしまう。
算術平均は、 対象の総和を不変にする という性質がある。つまり、対象の総和が変わらないように平均を取るということ。しかし、この場合は、 時間 が不変の対象としてふさわしい。時間は総和を不変にするような平均を取るということは、 速度の逆数 の平均をとることになる(速度の逆数は単位距離あたりの時間を表す)。ということで、
$$ {2 \over H} = {1 \over v_1} + {1 \over v_2} $$
という式が成立する。
この調和平均、「トレードオフの関係にある 2 つの指標を同時に評価するときによく使われる」という風によく表現される。
適合率と再現率の話に戻ると、適合率と再現率はトレードオフの関係にある。そのため、 適合率と再現率の調和平均をとることで、両者を同時に評価することができる ということになる。
その調和平均をとったものが F 値 である。F 値は以下の式で表される。
$$ F = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $$,
調和平均で定義するのは「トレードオフだから」、という主張について#
適合率と再現率が「トレードオフの関係にあるから」、それら 2 つを同時に考慮した一つの指標を考えるときには、それら 2 つの調和平均(=F 値)をとるのが良い、という主張がある。どこかで見た。これについて考える。
もしも、算術平均で考えた場合、以下はすべて同列の評価となる:
- 適合率 0, 再現率 1
- 適合率 0.5, 再現率 0.5
- 適合率 1, 再現率 0
ここで適合率と再現率が「トレードオフである」ということを考慮した場合に、指標に対して以下のような要求をしたくなる:
適合率が 0 のときは、たとえば再現率 1 であっても評価は最低の 0 にしたい(同様に、再現率が 0 のときは、たとえば適合率 1 であっても評価は最低の 0 にしたい)。
この要求を満たすために、適合率と再現率それぞれの評価を 逆数 として捉えるのは自然である。最適化理論における罰金項でも似たような操作をする(同じ理由で $\log$ を使っても面白いかも)。
その平均をとったものを、総合的な評価として捉える。こう考えると自然に調和平均の妥当性を見いだせる。
ここから言えることの一つが、 速度が調和平均である理由とは、特に関係がない ということ。
一応、これ以外にもボツにした考えがある。それは相加相乗平均といったところに結びつけるもの。
$v_1$ と $v_2$ がトレードオフの関係にあるというのを極端にシンプルに表現するならば、
$$ v_1 = {c \over v_2} $$
となる。これで調和平均、そして相加相乗平均を考えると
$$ {2 \over H} = {1 \over v_1} + {1 \over v_2} = {1 \over v_1} + {v_1 \over c} \geq 2 \sqrt{{1 \over v_1} \times {v_1 \over c}} = 2 \sqrt{{1 \over c}} $$
となって、この統合が成立するのは
$$ v_1 = v_2 $$
すなわち
$$ v_1 = v_2 = \sqrt{c} $$
となるとき。
みたいな議論が隣接しているから、調和平均がいいのかな、なんて思ったけど、別に算術平均でも全く同じ議論ができるので、ここには特に意味のあるものは潜んでいない。
MCC (Matthews Correlation Coefficient)#
F 値について調べていたら、 MCC (Matthews Correlation Coefficient) という指標に出会った。MCC は以下の式で表される。
$$ MCC = \frac{TP \times TN - FP \times FN}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}} $$
MCC は -1 から 1 の値をとり、1 に近いほど良い性能を示す。0 に近いほどランダムな予測を示し、-1 に近いほど逆の予測を示す。
以下、その中でも重要な議論だけ抜粋しておく。特に $\chi^2$ 分布の話は僕も色々と復習しなければならないので、それを後でやるときに思い出せる状態にしておく。
MCC の定義は $\chi$ 二乗分布のパラメータ $\chi^2$ と関連している:
MCC is closely related to the chi-square statistic for a 2×2 contingency table
$$ |MCC| = \sqrt{{\chi^2 \over n}} $$
where n is the total number of observations.
混合行列の状態によっては F 値は不合理な評価を与えることになる:
By applying your only-positive predictor to your imbalanced validation set, therefore, you obtain values for the confusion matrix categories:
TP = 95, FP = 5; TN = 0, FN = 0.
These values lead to the following performance scores: accuracy = 95%, and F1 score = 97.44%. By reading these over-optimistic scores, then you will be very happy and will think that your machine learning algorithm is doing an excellent job. Obviously, you would be on the wrong track.
おわり