LoginSignup
5
8

機械学習でよく使う評価指標まとめ

Last updated at Posted at 2020-09-30

20190528210419[1].png

0. はじめに

このポストでは,CourseraにあるKaggle講座 How to Win a Data Science Competition: Learn from Top Kagglers の講義メモとして,機械学習でよく使われる評価指標を,回帰・分類に分けて整理する.それぞれの評価指標について、定義(①)に加えて,その性質(②)や使用上の注意点(③)なども記す.

  • 注1) 紹介する評価指標については,重要で汎用度の高いものに絞っています.辞書的な網羅性はありません.
  • 注2) 内容の不足・不備については,些細な点でも,コメントなどにてご指摘いただけると嬉しいです.

1. 回帰

  • Notation
    • $N$ - number of data samples
    • $y \in \mathbb{R}^{N}$ - target vector (data set)
    • $ \hat{y} \in \mathbb{R}^{N}$ - predicted vector (data set)
    • $ y_i \in \mathbb{R} $ - target value (data)
    • $ \hat{y}_{i} \in \mathbb{R}$ - predicted value (data)

1.1. MSE, RMSE, R^2

1.1.1. 定義

  • MSE (Mean Square Error, 平均二乗誤差)
    $$
    MSE(\hat{y}) := \frac{1}{N}\sum_{i=1}^{N} { ( y_i - \hat{y}_{i} ) }^{2}
    $$
  • RMSE (Root Mean Square Error, 二乗平均平方根誤差)
    $$
    RMSE(\hat{y}) := \sqrt{ \frac{1}{N}\sum_{i=1}^{N} { ( y_i - \hat{y}_{i} ) }^{2} }
    $$
  • R^2 (R-squared, 決定係数)
    $$
    {R^{2}}( \hat{y} ) := 1 - \frac{ \frac{1}{N} \sum_{i=1}^{N} { ( {y}_i - \hat{y}_{i} ) }^{2} }{ \frac{1}{N} \sum_{i=1}^{N} { ( {y}_i - \bar{y}) }^{2} } = 1 - \frac{M S E(\hat{y})}{Var(y)}
    $$

1.1.2. 性質

  • MSEについて
    • MSEは,回帰における最も基本的な評価指標
    • 予測値$\hat{y}$の各要素を定数$\alpha$で固定した場合($\hat{y}_i = \alpha$),最適な定数$\alpha^{*}_{MSE}$ は観測データ$y$の平均値$\bar{y}$になる.
      $$
      \alpha^{*}_{MSE} := \bar{y} = \frac{1}{N}\sum_{i=1}^{N} y_i
      $$
  • MSE, RMSE, R^2の相違点
    • 損失関数としての性質
      • モデルの予測値$\hat{y}$に対するモデルパラメータ$\theta$の最適化を考える.MSE最小化・RMSE最小化・R^2最大化はいずれも同じ最適解$\theta^*$をもつ.
        $$
        \begin{align}
        MSE(\hat{y}_{\theta_1}) &> MSE(\hat{y}_{\theta_2}) \
        \Leftrightarrow ~~ RMSE(\hat{y}_{\theta_1}) &> RMSE(\hat{y}_{\theta_2}) \
        \Leftrightarrow ~~ \hspace{1.5em} {R^{2}}(\hat{y}_{\theta_1}) &< {R^{2}}(\hat{y}_{\theta_2})
        \end{align}
        $$
      • パラメータの更新に,勾配法を使う場合は注意.
        • RMSEを損失関数にした場合,MSEよりも更新幅が小さくなる.
          $$
          \frac{\partial RMSE}{\partial \hat{y}_{i}} = \frac{1}{2 \sqrt{MSE}} \frac{\partial MSE}{\partial \hat{y}_{i}}
          $$
    • モデルの絶対評価を行う際は,MSEではなくR^2 (決定係数)がよく使われる.

1.2. MAE

1.2.1. 定義

  • MAE (Mean Absolute Error, 平均絶対誤差)
    $$
    MAE(\hat{y}) := \frac{1}{N}\sum_{i=1}^{N} \left| y_i - \hat{y}_{i} \right|
    $$

1.2.2. 性質

  • MAEについて

    • 予測値$\hat{y}$の各要素を定数 $ \alpha$ で固定した場合($\hat{y}_i = \alpha$),最適な定数 $ \alpha^{*}_{MAE}$は観測データ$y$の中央値$median(y)$になる.
      $$
      \alpha^{*}_{MAE} := median(y)
      $$
    • 損失関数としての性質
      • MAEを損失関数とする場合,勾配法はあまり使われない
      • 予測値 $\hat{y}$の各要素を定数$\alpha$で固定した場合($\hat{y}_i = \alpha$),
        • $ \frac{\partial MAE}{\partial \hat{y}_{i}} ~$ : ステップ関数 (原点では微分不可能)
        • $ \frac{{\partial}^{2} MAE}{\partial {\hat{y}_{i}}^{2}}$ : 常に0 (原点では微分不可能)
    • MSEよりも,データに対するロバスト性が高い.
      • データに外れ値があった場合,MSEが評価する誤差は,MAEの2倍.
      • データの平均値は外れ値に影響されるが,中央値は外れ値に対して頑健.
    • MSEよりも,指標としての解釈性が高い.
      • ファイナンスの文脈でよく使われる.

  • Huber損失

    • MSEとMAEをミックスさせた評価指標として,Huber損失がある.ロバスト推定SVMの損失関数に用いられる.
      • Cf.) Huber, Peter J. (1964). “Robust Estimation of a Location Parameter”. Annals of Statistics 53 (1): 73–101. doi:10.1214/aoms/1177703732. JSTOR 2238020.
        $$
        Huber~loss := \frac{1}{N} \sum_{i=1}^{N} {L}_{\delta}(y_i, \hat{y}_{i}) \
        {L}_{\delta}(y_i, \hat{y}_{i}) = \left\{
        \begin{array}{c}
        \frac{1}{2} {( y_{i} - \hat{y}_{i} )}^{2} \hspace{4em} ( |y_{i} - \hat{y}_{i}| \leq \delta ) \\
        \delta \cdot ( |y_{i} - \hat{y}_{i}| - \frac{1}{2}\delta) \hspace{1em} ( |y_{i} - \hat{y}_{i}| \gt \delta )
        \end{array}
        \right.
        $$
  • Quantile Regression (分位点回帰)

1.3. (R)MSPEとMAPE

1.3.1. 定義

  • MSPE (Mean Square Percentage Error, 平均平方二乗誤差率)
    $$
    MSPE(\hat{y}) := \frac{100}{N} \sum_{i=1}^{N} { \left( \frac{y_i - \hat{y}_{i} }{y_i} \right) }^{2}
    $$
  • MSAE (Mean Absolute Percentage Error, 平均絶対誤差率)
    $$
    MSAE(\hat{y}) := \frac{100}{N} \sum_{i=1}^{N} \left| \frac{y_i - \hat{y}_{i} }{y_i} \right|
    $$

1.3.2. 性質

  • 相対誤差絶対誤差
  • MSPEについて
    • MSEを相対誤差で評価したもの.
    • %表示(百分率)にすることが多い.
    • 例:観測値$ y_i $と予測値$ \hat{y}_{i}$($N=1$)が以下のような場合
      • If $ ({y}_{1} = 90, ~~ \hat{y}_{1} = 100) $ then, $ MSE=100, ~~ MSPE=1 $
      • If $ ({y}_{2} = 900, ~~ \hat{y}_{2} = 1000) $ then, $ MSE=10000, ~~ MSPE=1 $
    • 損失関数としての性質
      • 予測値$\hat{y}$の各要素を定数$\alpha$で固定した場合($\hat{y}_{i} = \alpha$),最適な定数 $\alpha^{*}_{MSPE}$ は観測データ$y$の重み付き平均値 $w(\bar{y})$ になる.
      • 値が小さいデータに対して過剰にfitしようとする.(バイアス)
  • MAPEについて
    • MAEを相対誤差で評価したもの.
    • %表示(百分率)にすることが多い.
    • 例:観測値$ y_i $と予測値$ \hat{y}_{i}$($N=1$)が以下のような場合

      If $ ( y_1 = 90, ~~~ \hat{y}_1 = 100) ~~ $ then, $ MAE=10, ~~~ MAPE=1 $

      If $ ( y_2 = 900, ~ \hat{y}_2 = 1000) $ then, $ MAE=100, ~ MAPE=1 $
    • 損失関数としての性質
      • 予測値$\hat{y}$の各要素を定数$ \alpha$で固定した場合($ \hat{y}_{i} = \alpha$),最適な定数 $ \alpha^{*}_{MAPE}$ は観測データ$y$の重み付き中央値 $ w(\text{median}(y))$になる.
      • 値が小さいデータに対して過剰にfitしようとする.(バイアス)

1.4. RMSLE

1.4.1. 定義

  • RMSLE (Root Mean Square Logarithmic Error, 平均平方二乗対数誤差)
    $$
    \begin{eqnarray}
    RMSLE(\hat{y}) &:=& \sqrt{ \frac{1}{N}\sum_{i=1}^{N} { \left\{ \log(y_i + 1) - \log(\hat{y}_{i} + 1) \right\} }^{2} } \
    &=& \sqrt{ MSE(\log(y_i + 1), \log(\hat{y}_{i} + 1) ) }
    \end{eqnarray}
    $$

1.4.2. 性質

  • RMSLEについて
    • MSEをlogスケールで表現したもの
    • 絶対誤差を,相対誤差(MSPE, MAPE)ではなくlogスケールで表現.
      $y_i$ の大小を考慮して誤差評価
    • 損失関数として用いる場合,$ \hat{y} $ に対して凸かつ非対称
      • $ \hat{y} $ > 極小値 → 傾きが小さい
      • $ \hat{y} $ < 極小値 → 傾きが大きい



2. 分類

  • Notation
    • $N$ - number of data samples
    • $L$ - number of classes
    • $y_i$ - ground truth (data)
    • $\hat{y}_{i}$ - predictions (data)
    • $ y_{il}$ - probability that $i$-th sample belongs $l$-th label
    • $\hat{y}_{il}$ - confidence that $i$-th sample belongs $l$-th label
    • $ [ a = b]$ - indicator factor

二値分類の基本指標

  • 混同行列 (Confusion matrix)
    • 二値分類(Binary classification)タスクのみに使う.
      • True Positive (TP)
        • Positiveサンプルのうち,正しくPositiveと分類されたもの
      • False Positive (FP)
        • Negativeサンプルのうち,間違ってPositiveと分類されたもの
      • False Negative (FN)
        • Positiveサンプルのうち,間違ってNegativeと分類されたもの
      • True Negative (TN)
        • Negativeサンプルのうち,正しくNegativeと分類されたもの
      • Cf.) Understanding Confusion Matrix - Towards Data Science
    • 代表的な評価指標
    • ROC曲線 (Receiver Operating Curve, 受信者操作曲線)

2.1. Accuracy

2.1.1. 定義

  • Accuracy (正答率)
    $$
    Accuracy := \frac{1}{N}\sum_{i=1}^{N} [ y_i = \hat{y}_{i} ]
    $$
  • Error (誤り率)
    $$
    Error := \frac{1}{N}\sum_{i=1}^{N} [ y_i \neq \hat{y}_{i} ]
    $$

2.1.2. 性質

  • Soft predictionHard prediction
    • soft labels (= soft predictions)
      • $ f(x) \in \mathbb{R}^{L}$ - 分類モデル$f$の出力スコア
    • hard labels (= hard predictions)
      • $ \underset{i}{\rm argmax} ~ f_{i} (x)$ - 分類モデル$f$が最大スコアを出力したラベル
      • $ \left[ b \lt f(x) \in \mathbb{R}^{L} \right]$,$b$: しきい値
  • Accuracyについて
    • Hard predictionなので,解釈が難しい.
      • 分類モデル$f$の出力値そのものではなくて,$\text{argmax}()$で評価する.
    • 損失関数として用いると,最適化が難しい.
    • best conts. $\alpha^{*}(x)$:最も頻度の高いクラスに固定する.
    • 例($N = 100$)
      • Dataset
        • 10 cats
        • 90 dogs
      • $\alpha^{*}(x) = "dogs"$

2.2. LogLoss

2.2.1. 定義

  • Binary LogLoss
    $$
    Losloss := - \frac{1}{N}\sum_{i=1}^{N} \left\{ y_i \log \hat{y}_{i} + (1 - y_i) \log (1 - \hat{y}_i) \right\}, ~~ y_i, \hat{y}_{i} \in \mathbb{R}
    $$
  • Multiclass LogLoss
    $$
    Logloss := - \frac{1}{N} \sum_{i=1}^{N} \sum_{l=1}^{L} y_{il} \log \hat{y}_{il}, ~~ y_i, \hat{y}_{i} \in \mathbb{R}^{L}
    $$

2.2.2. 性質

  • LogLoss (Logarithmic loss)について
    • LogLoss $\in$ Soft prediction
    • 損失関数として用いると,最適化が簡単.
    • best conts. $\alpha^{*}_{i}(x)$
      • これは,$i$-th クラスの頻度(経験分布).
    • 例($N = 100$)
      • Dataset
        • 10 cats
        • 90 dogs
      • $ \alpha^{*}(x) = [0.1, 0.9 ]$

2.3. AUC (ROC)

2.3.1. 定義

  • AUC (Area under the ROC Curve)
    $$
    AUC := \frac{(\text{correctly orderd pairs})}{(\text{total number of pairs})}
    $$

2.3.2. 性質

  • AUCROC)について
    • AUCは,二値分類タスク(Binary classification)のみに使う
    • サンプルに対する識別結果の"順序"にのみ依存,分類モデルの"出力値"には非依存.
    • best consts. $ \alpha^{*}_{i}(x)$:任意の定数に固定してもAUCの値は同じ.
      • AUCは,分類平面(しきい値)に依らない.
    • AUCの説明
      • AUC := ROC曲線(Receiver Operating Curve)の下側面積
        • Wilcoxon-Mann-Whitney検定(WMW検定)
        • Brunner-Munzel検定
      • サンプルペアの順序
        • 正しい順序に分類されたサンプルペアの割合
          $$ AUC := \frac{(\text{correctly orderd pairs})}{(\text{total number of pairs})} $$
    • pythonの場合,sklearn.metrics.roc_curve()sklearn.metrics.auc()を使って計算できる.

2.4. Cohen’s Kappa

2.4.1. 定義

  • Cohen’s Kappa ($ \kappa$係数, $\kappa$統計量)
    $$
    \text{Kappa} := 1 - \frac{1 - \text{accuracy}}{1 - p_{e}} = 1 - \frac{(\text{error})}{(\text{baseline error})} \\
    p_{e} := \frac{1}{N^{2}} \sum_{k} n_{k1} n_{k2}
    $$

    • Notations
      • $i$ - 評価者
      • $k$ - 識別するクラス
      • $n_{ki}$ - 評価者 $i$ がクラス $k$ であると識別したサンプルの数
      • $N$ - サンプルの数
      • $p_{e}$ - 各サンプルをランダムに識別した場合の平均正答率
  • Weighted Kappa (重み付けカッパ係数)
    $$
    \text{Weighted Kappa} := 1 - \frac{(\text{weighted error})}{(\text{weighted baseline error})} \\
    \text{weighted error} := \frac{1}{Z} \sum_{i,j} c_{ij} w_{ij}
    $$

    • Notations
      • $c_{ij}$ - 混同行列$C$の$(i, j)$成分
      • $w_{ij}$ - 重み行列$W$の$(i, j)$成分
      • $Z$ - 規格化定数

2.4.2. 性質

  • Cohen's Kappa について
    • Jacob Cohenが1960年に発表.
    • 基準となるスコア(baseline)を0に正規化して,任意のモデルの性能を表現.
      • Kappa - Accuracy の関係性」は,「R^2 - MSE の関係性」に似ている.
  • Weighted Kappaについて
    • Accuracy(Error)に重みづけを行ってKappaを計算.
      • $ weighted~error := \frac{1}{Z} \sum_{i,j} c_{ij} w_{ij}$
      • $ c_{ij} $:混同行列$ C \in \mathbb{R}^{L \times L}$の$(i, j)$成分 ※$L$ - 識別するクラス数
      • $ w_{ij} $:重み行列$ W \in \mathbb{R}^{L \times L}$の$(i, j)$成分 ※$L$ - 識別するクラス数
    • 混同行列$C$
      • TP, FP, FN, FP
    • 重み行列$W$
      • "順序つき"クラスラベルの分類に使う.
      • 例:病気のレベルに応じたクラス分類 - 重み行列$W$の構成法
      • Linear weights:$ w_{ij} = |i - j|$
      • Quadratic weights:$w_{ij} = {(i - j)}^{2}$
    • Quadratic Weighted Kappaを損失関数に使う場合,典型的にはMSEで近似する.
    • 例($N = 100$)
      • Dataset
        • 10 cats
        • 90 dogs
        • 20 tigers

以上です。
最後まで読んでいただきありがとうございます。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8