📈

機械学習の評価指標覚え書き

2023/08/14に公開

評価指標の重要性

データ分析失敗事例集という書籍を読んで「評価指標って大事だな(小学生並みの感想)」と思ったので、個人的な覚え書きとしてメモ。

https://amzn.to/443claB

データ分析失敗事例集に加えて、ほぼ積読状態だった評価指標入門から、ポイントをまとめます。

評価指標とは何か?どうやって決めるか?

一番大事な話として、そもそも(この記事では特に機械学習分野での)「評価指標とは何か?」「どうやって決めるか?」という大問題がありますが、私が語るのは恐れ多いので、本記事では省略します。

一番難しくて、重要だからこそ、簡単に説明できないのでこの記事を読んであらためて気になったら、最初に紹介したような本を読んでみると良いかもしれません。

評価指標の分類

機械学習は「教師あり学習」「教師なし学習」「強化学習」と大きく3つに分けられるという話を聞いたことがある人は多いかもしれません。そのうち代表的な「教師あり学習」をさらに大きく分けると「回帰」と「分類」という2つの問題に分けられます。

回帰は、エクセルで以下のように、データ(グラフの点)から予測して線をひくようなやつですね。以下は単回帰の例です。

詳しくは以下記事とか参照ください。
https://qiita.com/karaage0703/items/701367b6c926552fe505

分類は、画像分類が一番わかりやすいですね。写真をみて、イヌとかネコとか当てるのが分類問題です。

分類問題でも、2つの分類問題(真か偽を当てる)を2値分類、それ以上の3つ以上の分類問題を多値分類といいます。

まとめると以下のような感じでしょうか。

この記事では代表的な「回帰」「2値分類」「多値分類」を扱います。機械学習の評価指標は大体このどれかに(ときには無理やり)カテゴライズするのではないかと思います。

というわけで、順にまとめていきます。ここからは、結構ChatGPTに書いてもらいました。TeXも書いてくれるすごいやつです。

回帰

回帰の評価指標です。基本的には、どれも予想値と真値の差が小さいほど良いよねという考え方です(当たり前)。

以下は代表的な指標で評価指標入門で紹介されているものを紹介しています。

平均絶対誤差(MAE)

MAE(Mean Absolute Error)

\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|

n:データの数$

y_i:実際の値

\hat{y}_i:予測された値

この式は、実際の値と予測された値の差の絶対値を合計し、その平均を取っています。

平均絶対パーセント誤差(MAPE)

Mean Absolute Percentage Error

\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100\%

n: データの数

y_i: 実際の値

\hat{y}_i: 予測された値

二乗平均平方誤差(RMSE)

Root Mean Square Error

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

n: データの数

y_i: 実際の値

\hat{y}_i: 予測された値

対数平均二乗誤差(RMSLE)

Root Mean Squared Logarithmic Error

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

n: データの数

y_i: 実際の値

\hat{y}_i: 予測された値

代表的な指標のまとめ

各指標の違い、メリット、デメリットをまとめたものです。ChatGPTにまとめてもらいました。個人的には、ここのあたりの指標の違いよりは、実際のビジネスにどう影響するのかといった対応がより重要な気がします(が難しい)。

指標 説明 メリット デメリット
MAE (Mean Absolute Error) 実際の値と予測された値との差の絶対値の平均 - 予測の誤差を直感的に解釈しやすい
- 外れ値に対して比較的ロバスト
- 誤差の大きさを二乗しないため、大きな誤差が少なく評価される場合がある
RMSE (Root Mean Square Error) 実際の値と予測された値との差の二乗の平均の平方根 - 誤差の大きさを強調するため、大きな誤差にペナルティを課す
- 一般的によく使用される
- 外れ値に敏感
MAPE (Mean Absolute Percentage Error) 実際の値と予測された値との差のパーセンテージの絶対値の平均 - 相対的な誤差を評価するため、結果のスケールに依存しない
- 結果の範囲が異なるデータセット間での比較が容易
- 実際の値が0に近い場合、誤差が非常に大きくなる可能性がある
- 分母が0の場合には定義できない
RMSLE (Root Mean Squared Logarithmic Error) 実際の値と予測された値の対数との差の二乗の平均の平方根 - 予測値と実際の値が非常に大きいとき、誤差が過大評価されるのを防ぐ
- 過小予測と過大予測の間のアンバランスを緩和
- 対数を取るため、解釈が少し難しい場合がある
- 予測や実際の値が負の場合、この指標は適用できない

その他の手法

評価指標入門でその他の手法となっていたものです。

平均二乗誤差(MSE:Mean Squared Error)

よく使われる指標ですが、評価指標入門では以下のような記述がありました。

ビジネスの現場においてはRMSEの方がMSEよりも直感的にわかりやすく、(中略)、RSMEの使用を推奨します。

決定係数 R^2

統計の授業とかでよくみるやつですね。

2値分類

混合行列(Confusion Matrix)

重要かつよく出てくるのが以下の混合行列表です。そしていつもそれぞれの意味がごっちゃになります。

追記:この表の書き方データ分析失敗事例集を参考にして、ChatGPTにMarkdownで書いてもらいました。結構、この評価指標のまとめ方面白いし分かりやすいですよね。

予測: 正(Positive) 予測: 負(Negative) 評価指標
真値: 正(Positive) 真陽性(True Positive: TP) 偽陰性(False Negative: FN)(予測漏れ) 再現率 (Recall=TPR): \frac{TP}{TP + FN}
真値: 負(Negative) 偽陽性(False Positive: FP)(予測過多) 真陰性(True Negative: TN) 偽陽性率 (FPR): \frac{FP}{FP + TN}
評価指標 適合率 (Precision): \frac{TP}{TP + FP} 精度 (Accuracy): \frac{TP + TN}{TP + TN + FP + FN}

ROC曲線/AUC

閾値を変えて、x軸にFPR, y軸にRecall(TPR)をプロットしたのがROC曲線です。

他近い指標として、PR-AUC, pAUCといったものがありますが、詳細は割愛します。

他の指標

以下のようなものがあります。詳細は割愛。

  • MCC
  • G-Mean
  • F1-score

多値分類

基本的には、2値分類の考え方を拡張することになります。

すみません、力尽きました。気が向いたら必要になったら追記します。

回帰を分類問題として考える

データ分析失敗事例集にも評価指標入門にも共通して書かれていたこととして、回帰を分類問題として考えることで問題を解きやすくなるケースがあるということでした。

ただ、これは自分自身まだうまく言語化できるほど理解も実践もできていないので、まだまだ勉強と経験が必要そうです。

書籍にはいくつか具体例が載っているので、興味ある方は確認ください。

まとめ

評価指標に関してまとめました。いつも混合行列の意味合いは、ごっちゃになります。PositiveとNegativeをどう定義するかで意味が逆になるのと、定義自体は好きに定義できるので、問題ごとに関係者で定義をきちんと言語化・記録して認識をしっかり合わせるのが重要ですね。

https://amzn.to/443claB

https://amzn.to/45rzNzC

参考リンク

https://qiita.com/K5K/items/5da52e99861483cae876

関連記事

https://zenn.dev/karaage0703/articles/4372578a69c444

https://karaage.hatenadiary.jp/machine-learning-study

変更履歴

  • 2023/08/15 「回帰を分類問題として考える」を追記

Discussion