😆

回帰モデルの評価指標についてちゃんと考えてみる

に公開

はじめに

環境が変わり、実務よりの記事が増えがちなMLエンジニアです。

今回は久々の数学記事になります。

以前、こんな記事を書きました。
https://zenn.dev/goals_techblog/articles/cda35700ba2173

こちらは回帰モデルの一般的な評価指標を中心に書きました。

記事を書くにあたって自分なりに調べながら書いているのですが、その中でためになった論文があったのでこの記事ではその内容を紹介しながら私の学びを共有したいと思います。


今回紹介するのはこちらの論文です。

https://arxiv.org/pdf/1809.03006

機械学習における回帰モデルの誤差指標の特性と分類体系について書かれています。

論文内容をそのまま転記するのではなく、私なりに咀嚼してまとめていきます。

日本語で表記している部分は、私がまとめたい部分に対応づけて表記しております。
論文内の対応する部分をわかりやすくするため、英語名は論文の表記をそのまま表記しております。

気になる点などございましたら原文を見て判断していただければと思います。

それでは内容に入っていきます。

誤差指標の数式構造による大分類: Performance Metrics Framework

まず、回帰モデルの誤差指標を数式の構造で分類してみます。
以下の3パターンに分類できます。

分類カテゴリ 説明
基本指標:
Primary metrics
単純な誤差を集計する基本的な評価指標
誤差の定義・正規化・集約の組み合わせで構成。
MAE, RMSE, MAPE, MdAE など
基本指標の正規化指標:
Extended metrics
基本指標をデータ全体のスケールや範囲で正規化した指標 NRMSE (= RMSE / 平均) など
合成指標:
Composite metrics
複数の基本指標やベンチマーク手法との比較を1つに組み合わせた指標 MASE など

正規化により派生した指標、複数の指標を組み合わせた指標がありますが、全て1番上の基本指標が元になっていることがわかると思います。
(基本指標は色で例えると三原色みたいなものです。)

この論文ではこの基本指標Primary metrics)に焦点を当て、構成する要素について言及しています。


基本指標の数式例

MAE: Mean Absolute Error(平均絶対誤差)

MAE: Mean Absolute Error(平均絶対誤差)

\text{MAE} = \frac{1}{n} \sum_{j=1}^{n} | A_j - P_j |
RMSE: Root Mean Squared Error(二乗平均平方根誤差)

RMSE: Root Mean Squared Error(二乗平均平方根誤差)

\text{RMSE} = \sqrt{ \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)^2 }
MAPE: Mean Absolute Percentage Error(平均絶対パーセント誤差)

MAPE: Mean Absolute Percentage Error(平均絶対パーセント誤差)

\text{MAPE} = \frac{100}{n} \sum_{j=1}^{n} \left| \frac{A_j - P_j}{A_j} \right|
MdAE: Median Absolute Error(中央値絶対誤差)

MdAE: Median Absolute Error(中央値絶対誤差)

\text{MdAE} = \text{median} \left( | A_j - P_j | \right)

基本指標の正規化指標の数式例

NRMSE: Normalized Root Mean Squared Error(正規化二乗平均平方根誤差)

NRMSE: Normalized Root Mean Squared Error(正規化二乗平均平方根誤差)

\text{NRMSE} = \frac{1}{\bar{A}}\text{RMSE} = \frac{ \sqrt{ \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)^2 } }{ \frac{1}{n} \sum_{j=1}^{n} A_j }

合成指標の数式例

MASE: Mean Absolute Scaled Error(平均絶対スケールド誤差)

MASE: Mean Absolute Scaled Error(平均絶対スケールド誤差)

\text{MASE} = \frac{ \frac{1}{n} \sum_{j=1}^{n} | A_j - P_j | }{ \frac{1}{n-1} \sum_{j=2}^{n} | A_j - A_{j-1} | }

誤差指標の基本指標を構成する3つの要素: Performance Metrics Framework

誤差指標の基本指標の全体像

誤差指標の基本指標を構成する要素について見ていきます。
この論文では基本指標は以下の3つの要素で構成されると主張しています。

要素 記号 意味
誤差の測り方: Point Distance \mathbb{D} 実測値と予測値の
誤差の測定方法
\mathbb{D}^1 = A_j − P_j: 誤差,
\mathbb{D}^2 = |A_j − P_j |: 絶対誤差,
\mathbb{D}^3 = (A_j − P_j)^2: 二乗誤差,
など
誤差の正規化の方法: Normalization \mathbb{N} 個別のデータの
スケールを揃える処理
\mathbb{N}^1 = 1: 無正規化,
\mathbb{N}^2 = A_j^{-c}: 実測値による正規化,
など
集約方法: Aggregation \mathbb{G} 全データに対して
誤差をまとめる方法
\mathbb{G}^1: 平均,
\mathbb{G}^2: 中央値,
\mathbb{G}^3: 幾何平均,
\mathbb{G}^4: 総和,
など

2行目の誤差の正規化の方法1つの誤差に対する正規化の方法を意味しています。
上の章で出てきた基本指標の正規化指標は誤差指標を正規化するものなので、

  • 個別の誤差に対する正規化か
  • 誤差の全体を計算した上で正規化か

という点で異なっています。

例:代表的な指標の構造

イメージを掴むために、代表的な指標の構造を上記の要素ごとに分解した例を載せておきます。
(詳しい説明は追って書いていきます。)

指標名 数式 誤差の測り方 \mathbb{D} 誤差の正規化の方法 \mathbb{N} 集約方法 \mathbb{G}
MAE \mathrm{MAE} = \frac{1}{n} \sum_{j=1}^{n} |A_j - P_j| 絶対誤差 正規化なし 平均
RMSE \mathrm{RMSE} = \sqrt{ \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)^2 } 二乗誤差 正規化なし 平均して平方根
MAPE \mathrm{MAPE} = \frac{100}{n} \sum_{j=1}^{n} \left| \frac{A_j - P_j}{A_j} \right| 絶対誤差 実測値による正規化 平均
MdRAE \mathrm{MdRAE} = \mathrm{median} \left( \frac{|A_j - P_j|}{|A_j - \bar{A}|} \right) 絶対誤差 実測値とその統計量を利用 中央値
GMRAE \mathrm{GMRAE} = \left( \prod_{j=1}^{n} \frac{|A_j - P_j|}{|A_j - \bar{A}|} \right)^{1/n} 絶対誤差 実測値とその統計量を利用 幾何平均

一般化した数式での表現

一般化した数式で表すと

\mathbb{m} = \mathbb{G}^z \left\{ \mathbb{N}^z \left[ \mathbb{D}^z (A_j, P_j) \right] \right\}_{j=1}^n

と書くことができます。

それぞれの要素ですが、

  • A_j: j番目の 実測値
  • P_j: j番目の 予測値
  • \mathbb{D}^z: 誤差の測り方(差・絶対値・二乗・logなど)
  • \mathbb{N}^z: 正規化の方法(なし or 比率など)
  • \mathbb{G}^z: 集約方法(平均・中央値・幾何平均など)
  • z: 各手法のインデックス(何番目の手法か)

となります。

この数式は、誤差計算 → 正規化 → 集約 という一連の流れを汎用的に表現しています。

次章以降では、

  • 誤差の測り方
  • 正規化の方法
  • 集約方法の種類

に関してまとめていきます。

誤差の測り方\mathbb{D}の種類: Methods of determining a point distance

まずは指標の特性を大きく左右する誤差の測り方からまとめていきます。

大きく分類すると差をベースにしたもの、商(精度比)をベースにしたものに分けることができます。

名前 数式 特徴 使用例
誤差:
Error
\mathbb{D}^1 = A_j - P_j 誤差の傾向(純粋な差)
・符号があるため過大・過小の傾向が把握可能
・正負の誤差が相殺されるリスクあり
予測全体の偏り(バイアス)を見たい場合に有効
ME: Mean Error
MPE: Mean Percentage Error
絶対誤差:
Absolute Error
\mathbb{D}^2 = |A_j - P_j| 誤差の大きさ
・正負の相殺を防ぐ
・すべての誤差に等しい重み
・微分したい場合は避けられる
全体的な誤差の規模を見たい場合に有効
MAE: Mean Absolute Error
MdAE: Median Absolute Error
二乗誤差:
Squared Error
\mathbb{D}^3 = (A_j - P_j)^2 大きな誤差を強調
・微分可能で最適化しやすい
・単位が元の変数の二乗になる
小さな誤差より、大きな誤差をより強く罰したい場合に有効
MSE: Mean Squared Error
RMSE: Root Mean Squared Error
対数比誤差:
Log Quotient
\mathbb{D}^4 = \ln\left(\frac{P_j}{A_j}\right) = \ln P_j - \ln A_j 誤差比率の傾向
・次元なし
・誤差の比率を見るのでスケールに不変
(実測値・予測値の両方に定数倍がかかっても結果が同じ)
・誤差を比率で見る場合、過大、過小の誤差が対称的になる
(2倍のズレと0.5倍のズレの誤差が絶対値で一致する)
・(比率で見るため)差の絶対誤差が同じ場合、過小予測を強く罰する
(プラス50とマイナス50ではマイナス50の方が誤差が大きくなる)
予測全体の誤差比率の偏り(バイアス)を見たい場合に有効
MdLAR: Median Log Accuracy Ratio
KLD: Kullback-Leibler Divergence
絶対対数比誤差:
Absolute Log Quotient
\mathbb{D}^5 = \left| \ln\left(\frac{P_j}{A_j} \right) \right| = | \ln P_j - \ln A_j | 誤差比率の大きさ
・全体的に対数比誤差と同じ特徴
・絶対値を取ることで誤差比率の大きさを見る
誤差比率の大きさを見たい場合に有効
MdSA: Median Symmetric Accuracy

誤差の使用例

ME: Mean Error(平均誤差)

ME: Mean Error(平均誤差)

\text{ME} = \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)
MPE: Mean Percentage Error(平均パーセンテージ誤差)

MPE: Mean Percentage Error(平均パーセンテージ誤差)

\text{MPE} = \frac{100}{n} \sum_{j=1}^{n} \left( \frac{A_j - P_j}{A_j} \right)

絶対誤差の使用例

MAE: Mean Absolute Error(平均絶対誤差)

MAE: Mean Absolute Error(平均絶対誤差)

\text{MAE} = \frac{1}{n} \sum_{j=1}^{n} \left| A_j - P_j \right|
MdAE: Median Absolute Error(中央値絶対誤差)

MdAE: Median Absolute Error(中央値絶対誤差)

\text{MdAE} = \text{median} \left( \left| A_j - P_j \right| \right)

二乗誤差の使用例

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

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

\text{MSE} = \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)^2
RMSE: Root Mean Squared Error(二乗平均平方根誤差)

RMSE: Root Mean Squared Error(二乗平均平方根誤差)

\text{RMSE} = \sqrt{ \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)^2 }

対数比誤差の使用例

MdLAR: Median Log Accuracy Ratio(対数誤差比の中央値)

MdLAR: Median Log Accuracy Ratio(対数誤差比の中央値)

\text{MdLAR} = \text{median} \left( \ln \left( \frac{P_j}{A_j} \right) \right)
KLD: Kullback-Leibler Divergence(カルバック・ライブラー情報量)

KLD: Kullback-Leibler Divergence(カルバック・ライブラー情報量)

確率分布 P(予測分布)と A(実測分布)の間の差異を測る指標。

\text{KLD}(P \parallel A) = \sum_{j} P_j \log \left( \frac{P_j}{A_j} \right)

※ 通常は確率分布(非負で総和が1)が前提です。


絶対対数比誤差の使用例

MdSA: Median Symmetric Accuracy(対数誤差比絶対値の中央値のパーセンテージ)

MdSA: Median Symmetric Accuracy(対数誤差比絶対値の中央値のパーセンテージ)

\text{MdSA} = 100 \times \text{median} \left( \left| \ln \left( \frac{P_j}{A_j} \right) \right| \right)

正規化の方法\mathbb{N}の種類: Methods of normalization

次に正規化の方法についてまとめていきます。

名前 数式 特徴 使用例
正規化なし
単位正規化):
Unitary Normalization
\mathbb{N}^1 = 1 ・除算処理が不要でシンプル
・元の誤差の次元を維持
・誤差の大きさがそのまま評価に反映されるため、スケールの違いに影響されやすい
ME: Mean Error
MAE: Mean Absolute Error
実測値を利用した正規化:
Normalization by Actuals
\mathbb{N}^2 = A_j^{-c} ・cは誤差の種類によって指定
・通常誤差: c=1, 二乗誤差: c=2
・パーセンテージ表示に変換されることも多い
・次元が無くなるので複数系列で比較しやすい
・実績値A_j \approx 0 の場合に評価値が極端に大きくなる
MAPE: Mean Absolute Percentage Error
MPE: Mean Percentage Error
実測値とその統計量を利用した正規化:
Normalization by Variability of Actuals
\mathbb{N}^3 = (A_j - \bar{A})^{-c} ・cは誤差の種類によって指定
・実績値の平均を使うことで A_j \approx 0 の問題を緩和
・実測値の平均\bar{A}を用いる場合、データの分布や外れ値に影響されやすい
・ばらつきが小さいデータに対しては分母が小さくなりやすく、評価値が不安定になる
・実測値と比較した直接的な誤差評価ではないため直感的理解が難しい
RAE: Relative Absolute Error
MRAE: Mean Relative Absolute Error
実測値と予測値を利用した正規化:
Normalization by Sum of Actuals and Predicted
\mathbb{N}^4 = (A_j + P_j)^{-c} ・cは誤差の種類によって指定
・実測値A_j \approx 0 の場合も使用しやすい
・絶対値や平均を取る場合もある
・実測値と予測値が共に小さい場合に0除算問題が残る
・(予測値を使用するため)評価の解釈が難しくなる
sMAPE: Symmetric Mean Absolute Percentage Error
FAE: Fractional absolute error

正規化なしの使用例

ME: Mean Error(平均誤差)

ME: Mean Error(平均誤差)

\text{ME} = \frac{1}{n} \sum_{j=1}^{n} (A_j - P_j)
MAE: Mean Absolute Error(平均絶対誤差)

MAE: Mean Absolute Error(平均絶対誤差)

\text{MAE} = \frac{1}{n} \sum_{j=1}^{n} \left| A_j - P_j \right|

実測値を利用した正規化の使用例

MAPE: Mean Absolute Percentage Error(平均絶対パーセント誤差)

MAPE: Mean Absolute Percentage Error(平均絶対パーセント誤差)

\text{MAPE} = \frac{100}{n} \sum_{j=1}^{n} \left| \frac{A_j - P_j}{A_j} \right|
MPE: Mean Percentage Error(平均パーセンテージ誤差)

MPE: Mean Percentage Error(平均パーセンテージ誤差)

\text{MPE} = \frac{100}{n} \sum_{j=1}^{n} \left( \frac{A_j - P_j}{A_j} \right)

実測値とその統計量を利用した正規化の使用例

RAE: Relative Absolute Error(相対絶対誤差)

RAE: Relative Absolute Error(相対絶対誤差)

\text{RAE} = \sum_{j=1}^n \frac{|A_j - P_j|}{|A_j - \bar{A}|}
MRAE: Mean Relative Absolute Error(平均相対絶対誤差)

MRAE: Mean Relative Absolute Error(平均相対絶対誤差)

\text{MRAE} = \frac{1}{n} \sum_{j=1}^n \frac{|A_j - P_j|}{|A_j - \bar{A}|}

実測値と予測値を利用した正規化の使用例

sMAPE: Symmetric Mean Absolute Percentage Error(対称平均絶対パーセント誤差)

sMAPE: Symmetric Mean Absolute Percentage Error(対称平均絶対パーセント誤差)

\text{sMAPE} = \frac{100}{n} \sum_{j=1}^{n} \frac{2 \cdot |A_j - P_j|}{|A_j| + |P_j|}
FAE: Forecast Absolute Error(対称平均絶対誤差)

FAE: Fractional absolute error(対称平均絶対誤差)

\text{FAE} = \frac{1}{n} \sum_{j=1}^{n} \frac{2 \cdot |A_j - P_j|}{|A_j| + |P_j|}

集約方法の種類: Methods of aggregation of point distances over a data set

最後に集約方法についてまとめていきます。

名前 数式 特徴 使用例
算術平均集約:
Mean Aggregation
\mathbb{G}^1 = \frac{1}{n} \sum_{j=1}^n d_j ・最も一般的な集約方法
・誤差の期待値を表す直感的手法
・外れ値や歪んだデータに敏感になる
MPE: Mean Percentage Error
MRAE: Mean Relative Absolute Error
中央値集約:
Median Aggregation
\mathbb{G}^2 = \text{median}(d_j) ・データを昇順に並べ中央の値を採用
・外れ値に強くてロバスト
・解析的に扱いづらい
MdAE: Median Absolute Error
MdRAE: Median Relative Absolute Error
幾何平均集約:
Geometric Mean Aggregation
\mathbb{G}^3 = \left(\prod_{j=1}^n d_j\right)^{\frac{1}{n}} ・幾何平均なので、非常に小さな誤差がある場合その値に引っ張られる
(大きな誤差を軽視してしまう)
・負や0の値が含まれると計算不可
・相対誤差の乗算的性質(誤差の積み重ね)を考慮したい場合に利用
GRMSE: Geometric Root Mean Squared Error
GMRAE: Geometric Mean Relative Absolute Error
GMAE: Geometric Mean Absolute Error
合計集約:
Sum Aggregation
\mathbb{G}^4 = \sum_{j=1}^n d_j ・単純に全誤差の和を計算
・スケールの影響を受けやすい
・集約量として用いられることが多い
RAE: Relative Absolute Error
SSE: Sum of Squared Errors
RSE: Relative Squared Error
SAD: Sum of Absolute Differences
最大値集約 \mathbb{G}^{5} = \max_{j} \left| d_j \right| ・最大誤差のみを考慮 MaxAE: Maximum Absolute Error
その他
ロバストな平均への集約
- ・いずれも外れ値への耐性を持つ算術平均の変種
・トリム平均:極端値を除去し算術平均を計算
・ウィンズライザー平均:極端値を極端値でない値に置換して算術平均を計算
・M推定量(M-estimator):観測値に重みをつけて外れ値影響を軽減した上で平均を計算
R-MAPE: Resistant Mean Absolute Percentage Error

算術平均集約の使用例

MPE: Mean Percentage Error(平均パーセンテージ誤差)

MPE: Mean Percentage Error(平均パーセンテージ誤差)

\text{MPE} = \frac{100}{n} \sum_{j=1}^{n} \left( \frac{A_j - P_j}{A_j} \right)
MRAE: Mean Relative Absolute Error(平均相対絶対誤差)

MRAE: Mean Relative Absolute Error(平均相対絶対誤差)

\text{MRAE} = \frac{1}{n} \sum_{j=1}^n \frac{|A_j - P_j|}{|A_j - \bar{A}|}

中央値集約の使用例

MdAE: Median Absolute Error(中央値絶対誤差)

MdAE: Median Absolute Error(中央値絶対誤差)

\text{MdAE} = \text{median} \left( | A_j - P_j | \right)
MdRAE: Median Relative Absolute Error(中央値相対絶対誤差)

MdRAE: Median Relative Absolute Error(中央値相対絶対誤差)

\mathrm{MdRAE} = \mathrm{median} \left( \frac{ |A_j - P_j| }{ |A_j - \bar{A}| } \right)

幾何平均集約の使用例

GRMSE: Geometric Root Mean Squared Error(幾何平均2乗誤差平方根)

GRMSE: Geometric Root Mean Squared Error(幾何平均2乗誤差平方根)

\mathrm{GRMSE} = \left( \prod_{j=1}^n (A_j - P_j)^2 \right)^{\frac{1}{2n}}
GMRAE: Geometric Mean Relative Absolute Error(幾何平均相対絶対誤差)

GMRAE: Geometric Mean Relative Absolute Error(幾何平均相対絶対誤差)

\mathrm{GMRAE} = \left( \prod_{j=1}^n \frac{ |A_j - P_j| }{ |A_j - \bar{A}| } \right)^{\frac{1}{n}}
GMAE: Geometric Mean Absolute Error(幾何平均絶対誤差)

GMAE: Geometric Mean Absolute Error(幾何平均絶対誤差)

\mathrm{GMAE} = \left( \prod_{j=1}^n |A_j - P_j| \right)^{\frac{1}{n}}

合計集約の使用例

RAE: Relative Absolute Error(相対絶対誤差)

RAE: Relative Absolute Error(相対絶対誤差)

\mathrm{RAE} = \sum_{j=1}^n \frac{ |A_j - P_j| }{ |A_j - \bar{A}| }
SSE: Sum of Squared Errors(2乗誤差和)

SSE: Sum of Squared Errors(2乗誤差和)

\mathrm{SSE} = \sum_{j=1}^n (A_j - P_j)^2
RSE: Relative Squared Error(相対2乗誤差)

RSE: Relative Squared Error(相対2乗誤差)

\mathrm{RSE} = \sum_{j=1}^n \frac{ (A_j - P_j)^2 }{ (A_j - \bar{A})^2 }
SAD: Sum of Absolute Differences(絶対誤差和)

SAD: Sum of Absolute Differences(絶対誤差和)

\mathrm{SAD} = \sum_{j=1}^n |A_j - P_j|

最大値集約の使用例

MaxAE: Maximum Absolute Error(最大絶対誤差)

MaxAE: Maximum Absolute Error(最大絶対誤差)

\mathrm{MaxAE} = \max_{j} |A_j - P_j|

さいごに

回帰モデルの評価指標の構成についてまとめてある論文を紹介してみました。

評価指標は、誤差の測り方正規化の方法集約方法の種類の3要素の組み合わせで設計できるという点が理解できると思います。

自分で評価指標を作る際も参考にしやすく活用しやすいと思います。

この記事が、みなさんの指標作成の参考になれば幸いです。

参考

・Performance Metrics (Error Measures) in Machine Learning Regression, Forecasting and Prognostics: Properties and Typology
https://arxiv.org/pdf/1809.03006

Discussion