機械学習では、モデルを評価する指標が必要となります。評価指標が間違っていれば、モデルを良くない方向へ改良することに繋がったり、信憑性のないモデルが出来上がってしまいます。しかし、機械学習における評価指標には様々な種類が存在するため、どんな場合にどんな指標を使えばよいか分かりにくいと思います。そこでこの記事では正しい評価指標は何かについて解説していきたいと思います。

教師あり機械学習の基本

機械学習にけるタスクは大まかに以下の2つに分けることができます。

  • 回帰問題
  • 分類問題

2つの問題の異なる点は、求められる答えの種類が違うところです。回帰分析は連続値すなわち具体的な値を予想する問題です。分類問題はどのグループに属するかを求める問題です。この違いから、評価指標の求め方も当然変わってきます。以下では回帰問題、分類問題の順でそれぞれの評価指標について解説していきます。

回帰問題

回帰問題とは連続値を予想する問題のことで、例えば広告費から売り上げを予想する問題や家の広さや駅までの距離などから家賃を予想する問題などがこれに当たります。

図の例は、広告費という1つの変数から売り上げを求める単回帰分析になっています。

図の場合、\( y = w_0 + w_1x_1 \)が機械学習が予想した回帰式です

では、このモデルが予想した回帰式をどのようにして評価するのが良いのでしょうか?

今回紹介する回帰分析の評価指標は以下の3つです

  • MSE/RMSE
  • MAE

それぞれについて解説していきます。

MSE(Mean Squared Error)/RMSE(Root Mean Squared Error)

MSEは平均二乗誤差と呼ばれるもので機械学習を学んだことのある人なら1度は聞いたことがあると思います。

MSEはモデルの予想値を\( y \)、正解値を\( \hat{y} \)とすると以下の式で表せます

$$ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i – \hat{y}_i)^2 $$

RMSEは平方根平均二乗誤差と呼ばれるものでMSEの平方根を取ったもので以下のように表せます

$$\text{RMSE} =\sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i-\hat{y}_i)^2}$$

RMSEはMSEの平方根を取ります。その理由は指標の単位が目的変数と一致しやすくなるためです。二乗を取った後に平方根を取るため元の単位と一致しやすいというのは直感的にもわかると思います。目的変数と誤差が一致しやすくなることで誤差の大きさが直感的にとらえやすくなるという利点があります。

MSE/RMSEは予想値と正解値との誤差を二乗平均です。最小値は0で値が小さいほど正確なモデルと言えます。この評価指標の特徴は外れ値の影響を受けやすいという点です。MSE/RMSEは誤差を二乗するため大きな誤差が出た場合に値が一気に大きくなってしまいます。そのためMSE/RMSEは大きな誤差に厳しい指標と言えます。

この性質から、MSE/RMSEは大きな誤差を少なくしたい場合に適していると言えます。

MAE(Mean Absolute Error)

MAEは平均絶対誤差と呼ばれる評価指標である。

MAEはモデルの予想値を\( y \)、正解値を\( \hat{y} \)とすると以下の式で表せます

$$ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left| y_i – \hat{y}_i \right| $$

MAEは予想値と正解値との誤差の絶対値において平均を取ったものです。最小値は0で値が小さいほど正確なモデルと言えます。この評価指標の特徴は誤差を平等に扱う点で、誤差の総合値が最も小さいものが良いとされます。また、MSEなど異なり二乗が行われていないため、最も直感的にわかりやすい指標だと言えます。

このような特徴から、MAEは外れ値に強い影響を受けたくない場合に適した指標だと言えます。

各指標の実験

それぞれの指標での数値を比較してみましょう!

 

上記は家賃予想モデルAと家賃予想モデルBの性能比較を行っています。

結果は以下のようになりました。

図からもわかるようにMAEではAの予想が優秀、MSE/RMSEではBの予想が優秀と出ました。

今回のケースでは4つ目の物件を事故物件と想定しており、通常より価格が安い外れ値となっています。

MSE/RMSEでは外れ値に引っ張られる形でAのモデルが優秀と判断され、MAEでは総合的にみてBが優秀とされています。今回のケースでは、Bは通常の物件の価格を正確に予想できているためBが優秀であるといえます。このようにMAEは外れ値に左右されにくい評価指標となっています。

 

上記は大規模プロジェクトの予算AとBの性能比較を行っています。

結果は以下のようになりました。

図のようにMAEではBの予想が優秀、MSE/RMSEではAの予想が優秀と出ました。

今回のケースでは、Bは4番目と7番目のケースで大きな誤差を出しており、Aではすべてのプロジェクトに対してある程度の誤差が出ています。大規模プロジェクトにおいてはある程度の誤差は許容されるが、大きな誤差はプロジェクトの破綻を招くため、Aのモデルがより優秀と言えます。

このように大きな誤差が許されない場合には外れ値を厳しく評価するMSE/RMSEによる評価が適当であると言えます。

回帰問題まとめ

上記ではもっと有名である指標3つを紹介しました。他にも決定係数や赤池情報量基準などの指標が存在するので気になる人はぜひ調べてみてください。

分類問題

分類問題とは、与えられたデータから対象がどのグループに属するかを予想するタスクのことで、例えば、写真に映っているのが犬か猫かを予想するタスクなどがこれに当たります。

図の例では、画像が犬と猫のどちらであるのかを分類しています。ではこの場合どのようにして機械学習モデルの性能を評価すればよいでしょうか?直感的には正解率を使えばいいような気がしてしまいますが実はそうとも限りません。

例えば、犬か猫かという問いが100問あるとしてうち90問の答えが犬の場合、いかなる画像に関しても犬とのみ出力する機能を搭載したものであれば正解率90%になるわけですがこれは正しく性能を評価しているとは言えないわけです。もし猫が答えとなる問いが50問犬が50問であれば正解率は50%と直感的にも正しいと考えられることから、今回の場合には問題に偏りがあることで正解率が正しい評価指標とは言えなくなっているわけです。

このように問題に偏りがでるのは実際によくあることで、人口の数パーセントしかかからない病気などの検査はほとんどが陰性なので仮に陰性とのみ出力する機械学習モデルでも高い正解率となってしまいます。ではどのような指標が正しいのでしょうか??

今回紹介する分類問題の指標は以下の4つです。

  • 正解率・適合率・再現率
  • F1スコア
  • ROC曲線・AUC
  • マクロ平均・ミクロ平均

正解率・適合率・再現率

上記の図は混同行列とよばれるもので、二値分類における実際の値と予想の組み合わせで表現されています。今回はコロナウイルスのPCR検査の例を使って説明します。

TP(True Positive) 正解が陽性かつ予想(検査結果)も陽性である数

FN(False Negative) 正解が陽性かつ予想(検査結果)が陰性である数

FP(False Positive) 正解が陰性かつ予想(検査結果)が陽性である数

TN(True Negative) 正解が陰性かつ予想(検査結果)が陰性である数

これらの値を使うと正解率、適合率、再現率が計算できます。

正解率

\( \text{正解率} = \frac{TP + TN}{TP + TN + FP + FN} \)

正解率とはすべての予想に対する正しい予想の割合です。

正解率を使用する場面は、クラスに偏りが少ない場合やすべてのクラスが同様に重要である場合です。

例えば、以下のような場合を考えます。

\( \text{正解率} = \frac{10+100}{10+10+10+100} = \text{約85%} \)

この場合は、犬20件、猫110件と大幅に猫に偏っています。すると正解率が高いように見えますが、実は犬が与えられた場合は、50%しか正しく判定できないのです。このようにクラスに偏りがある場合、正解率ではうまく性能を評価できない場合があります。ではクラスに偏りがある場合はどのような指標があるのでしょうか

適合率

\( \text{適合率} = \frac{TP}{TP + FP} \)

適合率とは、正と予想したものがどれほどの確率で実際に正であるかを表す割合です。

適合率はその定義から問題の偏りに左右されません

適合率は、FPが少ない程、つまり誤って正と判断するものが少ない程高くなります。したがって適合率は、誤って正と判断することが許されない場合に使用されます。例えば、スパムメールを判定する場合、最も重要なことはスパムではないメールをスパムと判断しないことです。そのような場合に適合率が重視されます。では下記の場合の適合率はどうでしょうか。

\( \text{正解率} = \frac{10 + 100}{10+ 10 + 10 + 100} = \text{約85%} \)\( \text{適合率} = \frac{10}{10+10} = \text{約50%} \)

スパムメールと予想したものの内50%は正規のメールであるとこがわかるわけです。今回の場合は適合率が50%と低い値であるためあまりいいモデルではないと言えるわけです。他にも問題の偏りに左右されない指標があります。

再現率

\( \text{再現率} = \frac{TP}{TP + FN} \)

再現率とは、実際に正であるうち、どれほどの確率で正と予想できているかを表す割合です。

実際に正であるものを負と誤って判断することが少ない程再現率は高くなります。再現率は実際に正であるものを見逃すことが許されない場合に使用されます。例えば、病気の診断では実際には癌であるのに癌ではないと判定してしまうと大変なことになってしまいます。このような場合に再現率が重視されます。では下記の場合の適合率はどうでしょうか。

\( \text{正解率} = \frac{50 + 200}{50+ 10 + 30 + 200} = \text{約86%} \)\( \text{再現率} = \frac{50}{50+30} = \text{約63%} \)

正解率だけ見るとよいモデルに見えますが、63%の確率でしか癌の人を癌と予想できません。このように再現率をみればこのモデルがあまりいいとは言えないことがわかると思います。

F1スコア

\( \text{F}_1 = 2\times\frac{\text{適合率}\times\text{再現率}}{\text{適合率} + \text{再現率}} \)

F1スコアとは適合率と再現率の調和平均で表されます。F1スコアは適合率と再現率の両方を考慮した指標になっており、クラスが不均一である場合に適合率と再現率の両方を重視できる指標です。特に適合率と再現率のバランスが求められる際に使われます。適合率、再現率ともに1の場合で最大値1を取り、適合率または再現率が0の場合に最低値0を取ります。

上記の図の場合のF1スコアは以下のようになります。

\( \text{適合率} = \frac{10}{10+10} = \text{約50%} \)\( \text{再現率} = \frac{10}{10+10} = \text{約50%} \)\( \text{F}_1 = 2\times\frac{0.5\times0.5}{0.5 + 0.5}=0.5 \)\( \text{正解率} = \frac{10+100}{10+ 10 + 10 + 100} = \text{約85%} \)

正解率は高くなっている一方で、F1スコアは低くなっています。このようにクラスが不均一の場合はF1スコアがモデルの性能を評価するのに適していると言えます。

ROC曲線・AUC

ROC曲線はモデルの性能を評価する指標の一つで、真陽性率(TPR)偽陽性率(FPR)に基づいて計算されます。真陽性率とは、実際に陽性のデータを陽性と判断した割合(再現率)のことであり、偽陽性率とは、実際には陰性のデータを誤って陽性と判断した割合のことです。二値分類は数字によるデータを元に閾値を決め、ある閾値以上陽性それ以下は陰性というように閾値によって陽性か陰性が決まります。下記の図はXを元に実際のデータの分布を表したものである。

例えば、1つ目の図のようにXに身長が入り、陽性を男性、陰性を女性とするとしっくりくると思います。この場合、X(身長)がいくつ以上の場合を男性とするかが閾値に当たります。閾値を低くすればするほど実際に男性である人を男性と判断できるため真陽性率は高くなります。一方で、閾値を低くすればするほど女性を男性と判断してしまうため、偽陽性率が高くなります。真陽性率(TPR)偽陽性率(FRP)は基本的にはトレードオフの関係にあります。ただし、陽性と陰性が重複する値を一切取らない場合にはその限りではないです。また2つ目の図のように分布が似ている場合には特にトレードオフの関係が強くなります。

ROC曲線とは偽陽性率をX軸、真陽性率をY軸に取った時のグラフのことです。

上記の例を用いてROC曲線を作成すると下記の図のようになります。

上記の図は2つの分布に対するROC曲線になっています。真陽性率が高く偽陽性率が低いことが理想であるため、理想的なROC曲線は左上に大きく張ったものとなります。今回の例では分布に差が見られた身長は左上に張る形になり、ほとんど差がなかった年齢は直線のようになっています。

ROC曲線による評価指標ではAUCというROC曲線下の面積が指標とされます。AUCが大きい程モデルの性能が高いと言えます。(左上に張るほど面積が大きい)

macro平均・micro平均

いままで紹介してきた分類問題の評価指標はすべて二値分類に関する指標でした。しかし、それでは複数のクラスに分類する多クラス分類問題を評価できません。多クラス分類とは分類するクラスが3つ以上である場合を指します。例えば図のような動物の分類であれば犬、猫、ウサギの3つのクラスが存在するわけです。その場合には、今まで説明してきた評価指標はそのままでは使用できないわけです。そこでmacro平均やmicro平均と呼ばれる指標を使うことでモデルを評価する方法を紹介します。

macro平均

macro平均はすべてのクラスを平等に評価する場合に使用します。つまり、クラス間で重要度の優劣がない場合やクラス間のサンプル数に偏りがあるが、各クラスを平等に評価したい場合などに有効な評価指標です。

macro平均は以下の式で表せます。

\( \text{適合率 (Macro平均)} = \frac{\sum_{i=1}^{k} \text{適合率}_i}{\text{クラス数(k)}} \)\( \text{再現率 (Macro平均)} = \frac{\sum_{i=1}^{k} \text{再現率}_i}{\text{クラス数(k)}} \)\( \text{F1スコア(Macro平均)} = \frac{1}{k} \sum_{i=1}^k F1_i \)

\( \text{適合率}_i \)\( \text{再現率}_i \)\( \text{F1}_i \)とは各クラスを正それ以外を負としたときの適合率と再現率である

例を使って具体的に説明していきます。

犬を正それ以外のクラスを負としたときの混合行列です。猫と兎を合わせて別のクラスという意味で扱っています。

上記の表ができればあとはそれぞれの定義に従うと

\( \text{適合率}_\text{犬} = \frac{40}{40+25} = \text{約61%} \)\( \text{再現率}_\text{犬} = \frac{40}{40+25} = \text{約61%} \)\( \text{F1スコア}_\text{犬} = 2 \times \frac{0.61\times 0.61}{0.61+0.61}=0.61 \)

このようにして各クラスの適合率と再現率を求めます。

同様にして猫、兎をそれぞれ正とした場合についての適合率と再現率も求めると

\( \text{適合率}_\text{猫} = \frac{40}{40+30} = \text{約57%} \)\( \text{再現率}_\text{猫} = \frac{40}{40+25} = \text{約61%} \)\( \text{F1スコア}_\text{猫} = 2 \times \frac{0.57\times 0.61}{0.57+0.61}=0.59 \)\( \text{適合率}_\text{兎} = \frac{30}{30+20} = \text{約60%} \)\( \text{再現率}_\text{兎} = \frac{30}{40+25} = \text{約55%} \)\( \text{F1スコア}_\text{兎} = 2 \times \frac{0.60\times 0.55}{0.60+0.55}=0.57 \)

以上からmacro平均の適合率と再現率は以下のようになります。

\( \text{適合率 (Macro平均)} = \frac{0.61+0.61+0.6}{3}=0.61 \)\( \text{再現率 (Macro平均)} = \frac{0.61+0.57+0.55}{3}=0.58 \)

またmacro平均のF1スコアは以下のようになります。

\( \text{F1スコア (Macro平均)} = \frac{0.61+0.57+0.58}{3}=0.59 \)

このようにmacro平均は適合率や再現率やF1スコアに関して各クラスでの平均を取っているためサンプル数に偏りがあった場合でも各クラスを平等に評価できます。

micro平均

micro平均全クラスをまとめて計算する評価手法であるため、サンプル数の多いクラスが大きい影響を与える評価手法です。

micro平均は以下の式で表せます。

\( \text{適合率(Micro平均)} = \frac{\sum_{i=1}^{k} TP_i}{\sum_{i=1}^{k} (TP_i + FP_i)} \)\( \text{再現率(Micro平均)} = \frac{\sum_{i=1}^{k} TP_i}{\sum_{i=1}^{k} (TP_i + FN_i)} \)\( \text{F1スコア(Micro平均)} = 2 \times \frac{\text{適合率(Micro平均)} \times \text{再現率(Micro平均)}}{\text{適合率(Micro平均)} + \text{再現率(Micro平均)}} \)

\( \text{TP}_i \)\( \text{FP}_i \)\( \text{FN}_i \)とは各クラスを正それ以外を負としたときの値です。

上記の図はmacro平均同様に犬を正それ以外を負とした混合行列である。すると\( \text{TP}_\text{犬} \) ,\( \text{FP}_\text{犬} \) ,\( \text{FN}_\text{犬} \)は図より

\( \text{TP}_\text{犬}=40 \) ,\( \text{FP}_\text{犬}=25 \) ,\( \text{FN}_\text{犬}=25 \)となります

猫と兎についても同様に求めると

\( \text{TP}_\text{猫}=40 \) ,\( \text{FP}_\text{猫}=30 \) ,\( \text{FN}_\text{猫}=25 \) ,\( \text{TP}_\text{兎}=30 \) ,\( \text{FP}_\text{兎}=25 \) ,\( \text{FN}_\text{兎}=20 \)となります

よって、それぞれのMicro平均は以下のようになります。\( \text{適合率(Micro平均)}=\frac{40+40+30}{(40+25)+(40+30)+(30+25)}= \text{約58%} \)

\( \text{再現率(Micro平均)}=\frac{40+40+30}{(40+25)+(40+25)+(30+20)}= \text{約61%} \)\( \text{F1スコア(Micro平均)}=2 \times\frac{0.58 \times 0.61}{0.58+0.61}=0.59 \)
micro平均とmacro平均の差が出る場合

図のようにクラス間に偏りがある場合、micro平均とmacro平均は大きく異なります。

\( \text{適合率(Micro平均)}=\text{約58%} \) \( \text{適合率(Macro平均)}=\text{約50%} \)

\( \text{再現率(Micro平均)}=\text{約70%} \) \( \text{再現率(Macro平均)}=\text{約58%} \)

\( \text{F1スコア(Micro平均)}=\text{0.64} \) \( \text{F1スコア(Macro平均)}=\text{0.52} \)

上記のようデータは犬にサンプル数が偏った例です。犬に関しては良い性能であるが、それ以外に関してはあまり精度が良くないという例になっています。するとMicro平均はサンプル数が多いものほど与える影響のに対してmacro平均はすべてのクラスを平等に扱うためこのケースではmicro平均のほうが各指標の評価が高くなっています。

分類問題の評価指標まとめ

分類問題の評価指標では指標に応じで明確に差が出ることがわかったと思います。分類問題では目的を明確に意識して評価指標を決定してみてください。

まとめ

今回は回帰問題と分類問題のそれぞれについて評価指標の種類とそれぞれの用途について簡単に説明しました。今回紹介して指標以外にも様々な指標が存在するので興味のある方はぜひ調べてみてください。

\ シェア /

E資格スピードパッケージ2023#2修了者合格率100%達成

zero to one E資格 jdla

zero to oneの「E資格」向け認定プログラム

日本ディープラーニング協会の実施するE資格の受験ならzero to oneの「E資格」向け認定プログラム (税込165,000円) をおすすめします。当講座は、東京大学大学院工学系研究科の松尾豊教授と東北大学大学院情報科学研究科の岡谷貴之教授が監修する実践的なプログラムとなっています。
厚生労働省の教育訓練給付制度対象のE資格認定プログラムの中では最安値※となり、実質負担額49,500円~(支給割合70%の場合)で受講可能です。※2023年弊社調べ zero to one E資格 jdla

人工知能基礎講座を提供中

人工知能の第一人者である東京大学の松尾豊教授が監修した人工知能基礎講座を受講してみませんか? 人工知能の歴史から自然言語処理、機械学習、深層学習といった最先端のトピックやAIに関わる法律問題まで網羅しているので全てのビジネスパーソン・AIの初学者におすすめです。

サンプル動画

人工知能基礎講座はこちら↓ zero to one G検定 人工知能基礎 jdla

AI初学者・ビジネスパーソン向けのG検定対策講座

G検定受験前にトレーニングしたい方向けの問題集「G検定実践トレーニング」も提供中です。 zero to one E資格 jdla