前回の投稿からかなり時間があいてしまいましたが、これからも時々更新していく予定です。
機械学習の精度を評価する際によく利用されているAccuracyなどの指標ですが、金融分野ではほとんど使用されることはありません。
なぜ利用されないのかを説明する前に、混同行列とAccuracyなどの評価指標について説明します。説明が不要な方は問題点と結論だけをご覧ください。
Confution Matrix (混同行列)
混同行列とは機械学習の2項分類において、予測と結果をマトリックスにしたものです。
機械学習の2項分類では、通常予測確率とそれに基づく予測分類がアウトプットとして出力できます。
例えば、Credit scoreにおいては、延滞になる確率と延滞になる・ならないを0と1で出力します。
それを元に、予測と結果の合致をマトリックスで表すと以下のようになります。
- | 予測(延滞にならない) - Positive | 予測(延滞になる) - Negative
--- | --- | ---
結果(延滞でない) - Positive | TP(True Positive) | FN(False Negative)
結果(延滞) - Negative | FP(False Positive) | TN(True Negative)
学習結果で延滞にならないと予測して、結果が延滞でない場合はTPに該当し、延滞にならないと予測して、結果が延滞の場合はFNに該当します。
予測が正しかった場合は、TPかTNに該当することになります。
評価指標
上記の混同行列を使用した評価指標には以下のような種類があり、それぞれ特徴があります。どれも数値が高いほど性能がよいとされています。
-
Accuracy (正確率、精度)
よく利用されているもので、全体の中で予測と結果が正しかったものの割合がどれくらいあるかを示しています。$Accuracy = \frac{TP + TN}{TP + FP + FN + TN}$
-
Precision (適合率)
Positiveと予測された(延滞にならない)中で結果もPositiveだった割合。$Precision = \frac{TP}{TP + FP}$
-
Recall (再現率)
結果がPositiveなものをどれだけ予測できていたかの割合。$Recaall = \frac{TP}{TP + FN}$
-
Specificity (特異度)
結果がNegativeなものをどれだけ予測できていたかの割合。$Specificity = \frac{TN}{FP + TN}$
評価指標の問題点と特徴
例えば以下のような予測結果だった場合は、
- | 予測(延滞にならない) - Positive | 予測(延滞になる) - Negative
--- | --- | ---
結果(延滞でない) - Positive | 980(TP) | 0(FN)
結果(延滞) - Negative | 20(FP) | 0(TN)
$$ Accuracy = \frac{TP + TN}{TP+ FP + FN + TN} = \frac{980}{1000} = 0.98 $$
となり、Accuracyの数値は高いものになります。
ただし、内訳を見てみると予測はすべてPositiveとなっており、結果がNegativeのものを1件も予測できていません。データの偏りによってはでたらめに全部Positiveと予測しても、Accuracyは高い数値になります。
そこで、Specificityを計算してみると
$$ Specificity = \frac{TN}{FP + TN} = \frac{0}{20} = 0 $$
となり、Negativeになる予測がまったくできていないことがわかります。
その他指標
評価指標が数種類あり、それぞれが特徴を持つと評価が複雑になりがちです。そこでF値(F-score, F1 score, F-measure、F尺度)などと呼ばれる指標を使用することがあります。これはPrecisionとRecallの調和平均の値となります。
$$ F1 = 2\frac{Precision * Recall}{Precision + Recall} $$
問題点
混同行列を使用した様々な評価指標を述べてきましたが、これらを利用することはありません。混同行列の根本は、PositiveとNegativeの2項に分類し、その分類の正しさを測っています。分類の仕方は、予測された確率を基に決められたしきい値より低ければPositive、高ければNegativeになります。
最初の問題点として、データに偏りがあった場合です。元のデータでPositiveが99%、Negativeが1%のような場合、評価指標の数値は偏ったものになりがちです。
第二はしきい値の設定です。しきい値をどこにするかで当然PositiveとNegativeの割合が変化しますが、そのしきい値が適切なのかが曖昧になりがちです。
例えば、これをCredit scoreなどで利用すると、A社では延滞予測が5%以上は契約しないので、しきい値を5%に、B社では10%をしきい値に用いて、Negativeに分類された人は契約しないとしましょう。ではPositiveに分類された人がすべて延滞にならないかというとそうではなく、必ず延滞になる事案が発生します。これは、すべての与えられた情報(例えば属性や取引履歴)が同じでも、延滞にならない・なるケースが発生するためです。
Credit scoreで一番重要視されるのは、リスク度合いに合わせた商品設計なので、大事なことは何%の確率か(リスク度合い)ということで、PositiveやNegativeに分類される正確さではないのです。
結論
リスク度合いを考慮せずに、いかに高い精度で2項に分類するかが重要な場合は、当然上記の評価指標が重要になることもあります。
結論として、どう利用されるかによって使う指標を選ばないと、なんの意味もない指標をもとに学習モデルの精度を測り、精度がいい・悪いを評価してしまうことになります。
モデルの評価や予測した理由を説明する方法についてはこちらを御覧ください。
理解されるPOC作成のために、機械学習したモデルをどう評価し説明するかのまとめ。