分類問題とは
分類問題は、入力されたデータをあらかじめ定義されたクラスのいずれかに割り当てる問題です。そして、割り当てるクラスを予測する仕組みをモデルと呼びます。
分類問題では、モデルの予測の精度を評価するために、さまざまな指標が用いられます。代表的な指標を紹介します。
言葉の定義
2 クラス分類問題
データを 2 つのクラスに分類する問題を指します。例えば、あるメールが「スパム」か「非スパム」かを判断する問題は、2 クラス分類問題となります。
多クラス分類問題
データが 3 つ以上のクラスに分類される問題を指します。例えば、ある文書が「科学」、「芸術」、「スポーツ」、「政治」の 4 つのクラスのどれに属するかを予測する問題は、多クラス分類問題となります。
Positive と Negative
分類問題では、対象となるデータを二つのカテゴリー、すなわちポジティブ(Positive)とネガティブ(Negative)に分けることが一般的です。ここでの「Positive」と「Negative」は、単に二つの異なるクラスを指し示す用語です。
- Positive: 分類対象のうち、特に注目したいクラス。例えば、病気の診断でいう「病気あり」やスパムフィルタリングでいう「スパムメール」がこれにあたります。
- Negative: 分類対象のうち、ポジティブ以外のクラス。病気の診断であれば「病気なし」、スパムフィルタリングであれば「非スパムメール」がこれに該当します。
真陽性、偽陽性、真陰性、偽陰性
モデルの予測の精度を評価するときに、重要な概念として真陽性(True Positive)、偽陽性(False Positive)、真陰性(True Negative)、偽陰性(False Negative)があります。
- 真陽性(True Positive): モデルがポジティブと予測し、実際に正解もポジティブであるケースの数
- 偽陽性(False Positive): モデルがポジティブと予測したが、実際の正解はネガティブであるケースの数
- 真陰性(True Negative): モデルがネガティブと予測し、実際の正解もネガティブであるケースの数
- 偽陰性(False Negative): モデルがネガティブと予測したが、実際の正解はポジティブであるケースの数
また、True Positive を TP、False Positive を FP、True Negative を TN、False Negative を FN と略して、書く場合もあります。
混同行列(Confusion Matrix)
混同行列とは、真陽性(True Positive)、偽陽性(False Positive)、真陰性(True Negative)、偽陰性(False Negative)の関係を表形式で示したものです。
メールをスパムと非スパムの2つのクラスに分ける 2 クラス分類問題で、スパムを Positive、非スパムを Negative とした場合、混同行列は次のようになります。
| | 予測
スパム(Positive) | 予測
非スパム(Negative) |
---|
正解 | スパム(Positive) | 真陽性(TP) | 偽陰性(FN) |
正解 | 非スパム(Negative) | 偽陽性(FP) | 真陰性(TN) |
評価指標
分類問題の精度を評価するとき、正解率(Accuracy)、適合率(Precision)、再現率(Recall)、F 値を評価指標として用いるのが一般的です。これらの指標からモデルの性能を多面的に評価することが大切です。
2 クラス分類問題の場合
ここでは、あるメールが「スパム」か「非スパム」かを判断し、スパムと非スパムの2つのクラスに分ける 2 クラス分類問題を考えます。スパムを Positive、非スパムを Negative とした場合、混同行列は次のようになります。
| | 予測
スパム(Positive) | 予測
非スパム(Negative) |
---|
正解 | スパム(Positive) | 真陽性(TP) | 偽陰性(FN) |
正解 | 非スパム(Negative) | 偽陽性(FP) | 真陰性(TN) |
正解率(Accuracy)
最も基本的な指標です。正解とモデルの予測が一致した割合を計算します。
Accuracy=全データ数(TP+TN+FP+FN)TP+TN
正解率が高いほどモデルの性能が高いことを示しています。
適合率(Precision)、再現率(Recall)
適合率(Precision)は、モデルが Positive と予測したデータのうち、実際に Positive であった割合です。
適合率(Precision)=TP+FPTP
再現率(Recall)は、実際に Positive であるデータのうち、モデルが Positive と予測できた割合です。
再現率(Recall)=TP+FNTP
これらの指標はそれぞれトレードオフの関係にあり、両方高いことが理想です。
F 値
適合率と再現率を組み合わせた指標です。調和平均を取ることで、両者のバランスを取ります。
F値=2×Precision+RecallPrecision×Recall
F1 スコアと呼ばれることもあります。
多クラス分類問題の場合
多クラス分類問題の場合、一つのクラスを選んで Positive とし、それ以外の全てのクラスを Negative として、accuracy、precision、recall、F 値を計算するというプロセスを各クラスに対して繰り返します。それから、各クラスに対する accuracy、precision、recall、F 値の平均を取ることで、全体の評価値を計算します。
ここでは、A と B と C の 3 つのクラスに分ける 3 クラス分類問題を例として、考えます。このとき、A を Positive として、B と C を Negative とした際の TP、TN、FP、FN を TPA、TNA、FPA、FNAとします。
混同行列は次のようになります。
| | 予測
クラス A (Positive) | 予測
クラス B (Negative) | 予測
クラス C (Negative) |
---|
正解 | クラス A (Positive) | 真陽性(TPA) | 偽陰性(FNA) | 偽陰性(FNA) |
正解 | クラス B (Negative) | 偽陽性(FPA) | 真陰性(TNA) | 真陰性(TNA) |
正解 | クラス C (Negative) | 偽陽性(FPA) | 真陰性(TNA) | 真陰性(TNA) |
正解率(AccuracyA)、適合率(PrecisionA)、再現率(RecallA)、F 値Aは次のようになります。
正解率(AccuracyA)=全データ数(TPA+TNA+FPA+FNA)TPA+TNA
適合率(PrecisionA)=TPA+FPATPA
再現率(RecallA)=TPA+FNATPA
F値A=2×PrecisionA+RecallAPrecisionA×RecallA
B を Positive とした場合と、C を Positive とした場合も同様にして、正解率(Accuracy)、適合率(Precision)、再現率(Recall)、F 値を計算できます。これらの平均を取ると、
Accuracy平均=3AccuracyA+AccuracyB+AccuracyC
Precision平均=3PrecisionA+PrecisionB+PrecisionC
Recall平均=3RecallA+RecallB+RecallC
F値平均=3F値A+F値B+F値C
となり、これを全体の評価値とします。
特殊な場合
分類問題で特殊な例として、分類されるクラスが数字で表現され、その数字の大きさが意味を持つ場合があります。例えば、1,2,3,4 などの点数のクラスを割り当てる問題が当てはまります。
このような場合の精度の評価として、正解値とモデルの予測の平均絶対誤差を用いる方法が考えられます。
平均絶対誤差
平均絶対誤差は、正解の数字とモデルの予測した数字の差の絶対値を平均したものです。
平均絶対誤差が小さいほど精度の高い予測ができていることになります。
ここでは、1,2,3,4 などの点数でクラスを分ける問題を例として考えます。1~N の点数で、N 個のクラスに分類する場合、正解の点数をyi、モデルの予測した点数をyi^とすると、平均絶対誤差は次のように計算できます。
平均絶対誤差=N∑i=1N∣yi−yi^∣
まとめ
この記事では、分類問題において、モデルの精度の評価によく使われる評価指標について、解説しました。
評価指標の値を参考にすることで、モデルの精度がどれぐらいなのかを確認することができ、モデルの改善などに役立てることができます。

備考
Hakky ではデータ分析・ビッグデータ活用・AI 導入に関する最適なソリューションを展開しております。
「今考えているサービスが実現可能なのか」といったことから、「どんなことをお願いできるのか知りたい」や「こんなことをやりたい」など、ご検討段階でも構いませんので、ぜひお気軽にフォームよりお問い合わせくださいませ。