機械学習初学者の時とは異なった視点で読む評価指標入門

この記事は[ラクスパートナーズ Advent Calendar 2024](https://qiita.com/advent-calendar/2024/rakus-partners)8日目の記事です。
**弊社はITに関わるすべての人たちを応援する楽楽パートナー**を掲げ、日々お客様の業務の支援を行なっております
# TL;DR
#### 大事なのは評価指標に何を選ぶかではなく、何を目的として評価を行いビジネスに貢献できるかどうかである

# 1.はじめに
さて、
皆さん評価指標について、どの程度理解していますでしょうか？
こんな記事を書いときながら、私自身評価指標について理解しているなんて畏れ多くて口にできません。
ただ、初学者だった頃と実務を経た今では評価指標に対する見方が変わっているので評価指標に関する良書である[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)を読んで思った事について記事を書いていこうと思います。

::: note warn
評価指標入門を解説している訳ではないのでご注意ください
:::



# 2.評価指標とは
さて、本題に入ります。
皆さんは評価指標と聞いて何を思い浮かべるでしょうか？
機械学習関連の本ではモデルの比較や性能の向上の定量的評価の際に使われるので、モデルの定量評価のための値のイメージが強い人が多いと思います。

## 2.1 座学における評価指標のイメージと実際のギャップ
先述した通り、実務に携わる前は書籍のイメージが強く評価指標が良いモデルであればあるほど優れているモデルだと思っていました。
もちろん精度は重要ですが、実務においてはモデルの精度を追い求め続けるよりも重要なことがあります。
当たり前ですが「**<font color="orange">ビジネスに貢献できる事</font>**」です。
「[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)」でも学術的な視点とビジネス的な視点では持つ意味が異なっていると記載されており、この視点の違いを意識できるか否かは個人的にはかなり重要だと思います。

#### 学術的な視点から見た評価指標
>ある論文で提案された機械学習モデルがより優れたモデルであることを示すために、他のモデルとの性能差を比較するための役割を担うもの

#### ビジネス的な視点から見た評価指標
>ビジネスとして達成したい目的の達成度合いを表す指標として定義したKPIを改善するために設計された指標

2つの視点から見てわかる通り、ビジネスから見た評価指標ではモデルの良し悪しはもちろんですがその先にあるKPIひいては事業の成長に貢献を目的としていることが分かります。

そのため、KPIの内容によっては既知の評価指標では対応できない場合もあるため自分で定義し評価に用いる必要がある場合もあります。
とはいえ、代表的な評価指標は知っておくべきだと思うので[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)に記載されていた評価指標を見ていきます。

## 2.2 評価指標の代表(主観)
[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)には10種類以上の評価指標が記載されています。
その中から何個かピックアップしていきたいと思います。

### 回帰編
#### 1.MAE(平均絶対誤差)
実測値と予測値の差である誤差の絶対値の平均で評価する指標
**メリット** :
直感的で理解しやすい
**デメリット** : 
勾配を用いた最適化計算に不向き、単純な差分計算ゆえに全体への予測を外した影響度合いを計りにくい
```math
MAE = \frac{1}{N}\sum_{n=1}^{N}|y_i - \hat{y_i}| \\
```
```math
[N:データ数, y_i:実測値, \hat{y_i}:予測値]
```

#### 2.RMSE(二乗平均平方誤差)
MAEとは違い、実測値と予測値の差の二乗の平均をとり、平方根をとった値で評価する指標
**メリット** : 
外れ値に対して感度が高い（二乗している影響)
**デメリット** : 
単純な差分計算ゆえに予測を外した全体への影響度合いを計りにくい

```math
RMSE = \sqrt{\frac{1}{N}\sum_{n=1}^{N}(y_i - \hat{y_i})^2} \\
```
```math
[N:データ数, y_i:実測値, \hat{y_i}:予測値]
```

### 分類編
#### 3.Accuracy(正解率)
名前の通り、分類問題において実測値と予測値が一致した割合で評価する指標
**メリット** : 
直感的で分かりやすい
**デメリット** : 
不均衡なデータを使用する場合信用できない

```math
Accuracy(二値分類の場合) = \frac{TP+TN}{TP+FP+TN+FN}
```
```math
[TP:予測値が正で正解した数, FP:予測値が正で実測値が不の数, TN:予測値が不で正解した数,FN:予測値が不で実測値が正の数]
```
#### 4.MCC(マシューズ相関係数)
分類問題における実測値と予測値の相関係数を算出し評価する指標。
書籍では登場頻度が少ないですが、ビジネス面では使い勝手の良い指標。
**メリット** : 
不均衡データに対しても評価しやすい
**デメリット** : 
正解率のように直感的に理解しにくい

```math
MCC = \frac{TP\cdot TN - FP \cdot FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}
```
```math
[TP:予測値が正で正解した数, FP:予測値が正で実測値が不の数, TN:予測値が不で正解した数,FN:予測値が不で実測値が正の数]
```

以上4つのみですが、回帰・分類それぞれの評価指標について見てきました。
次は、ビジネスと機械学習をどう結びつけるに焦点を合わせていきたいと思います。
# 3.ビジネスとデータサイエンスの架け橋となる評価指標
[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)を読んでて、機械学習勉強し始めの自分に強く言い聞かせたい部分はここだなと思った箇所になります。
あくまで、自分たちはビジネスのために機械学習をやっているんだと改めて強く認識しました。
## 3.1 機械学習エンジニアが陥りがちな問題
機械学習はその性質上、研究段階ではいかに汎用的で良いモデルであるかについて議論されることが多く、モデルの精度が良ければ良いという雰囲気があります。
ただ、実際の業務においては精度は一定以上あれば良く、それよりも解きたい課題にコミットしたモデルであるかの方が重要であることの方が多いと思います。(その一定以上が高い場合もありますが、、)
[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)で紹介されている例で実際に確認していきたいと思います。
### 例: ECプラットフォームでのクーポンメール送付施策
今、ECプラットフォームのユーザーに対して性別に応じてクーポンを送付すべきか否かを決めることで売り上げを最大化する施策を行おうとしています。
以下の表は性別ごとの売上データを表しています。

表1)性別ごとの売上データ(単位は省略)
|ユーザーの性別|クーポンありの場合の売上|クーポンなしの場合の売上|売上の差分|
|-|-|-|-|
|男性|600|700|-100|
|女性|500|300|+200|

ここでこの企業の機械学習エンジニアは以下のような予測値を算出するモデルを2つ作成し、MAEを用いて精度比較を行なったとします。

表2) 売上予測モデルによる予測値と予測誤差
|実測値と予測値|男性における売上の差分|女性における売上の差分|MAE|
|-|-|-|-|
|実測値|-100|+200|-|
|予測モデルaにおける予測値|+50|-50|200|
|予測モデルbにおける予測値|-400|+500|300|

これだけ見るとMAEが低い予測モデルaの方が売り上げを予測するうえでより良いモデルに見えるのでクーポンの送付に関して以下のような意思決定になりそうです。
* 男性には**クーポンを送付**(+50の売り上げを得られるため)
* 女性には**クーポンを送付しない**(-50の損失があるため)

男女の割合を1:1とした場合、この時期待できる売り上げは表1と表２より
```math
期待売り上げ = (600+300)/2 = 450
```

となります。
反対にMAEでは精度の悪いモデルとなったモデルbの場合を見ると
* 男性には**クーポンを送付しない**(-400の損失があるため)
* 女性には**クーポンを送付**(+500の売り上げが得られるため)

この時期待できる売り上げは
```math
期待売り上げ = (700+500)/2 = 600
```

となり、モデルbの方が評価指標的には悪いにも関わらずビジネス的には優れていることが分かります。
この例は表1があまりにも差があるので分かりやすいですが、実際の業務においてもビジネス的な目標であるKPIに沿った評価指標を選択しないと例のように機械学習的には優れているがビジネスでは使えないモデルを作りかねません。

## 3.2 適切な評価指標の選び方
では、どうやって評価指標を選択すればよいか？というと書籍では
>「ビジネス施策の結果であるKPIと機械学習モデルの出力である予測値がどのような関係になるか理解した上で、KPIと相関するとように評価指標を設計する」

ことが基本方針であると記載されています。

まさにその通りで、ビジネスサイドのPMや担当者と密に連携をとり予測を行った先に**何を目的としているか**、ビジネスに貢献するためには**何をする必要があるのか**を機械学習エンジニアも認識しそれを元に分析設計を行い、ビシネスサイドの担当者と課題について共通の認識をもつ必要があります。

また、[評価指標入門](https://gihyo.jp/book/2023/978-4-297-13314-6)にも記載されていますが無数にある現実問題に対して既存の評価指標では対応できない場合もあります。
そんな時こそ、データサイエンス力の見せ所と思って評価指標を定義してドヤ顔しましょう！笑

とまあ、長々と書きましたが最後に今の自分が勉強し初めの頃の自分に伝えたいことは
「**安直に評価指標を選ぶのではなくて会社として売り上げを最大化するため適切な評価指標ひいては分析設計を行う能力こそがデータサイエンティスト・機械学習エンジニアにとって重要だぞ！！**」
「**数式や論文と睨めっこするのも楽しいけど分析設計を丁寧にやる癖をつけとけよ**」
と言いたいですね。

# 4.まとめ
拙い文章をここまで読んでいただきありがとうございます。
読んでいただいたあなたの機械学習ライフに貢献できたなら何よりです。
個人的に座学で得た知識と実務で必要とされる知識間のギャップが一番激しいのが評価指標だと思っています。(前処理の泥臭さとかもあるでしょうが、、)
評価指標というか分析設計こそ、データサイエンティスト力を構成する「数学力」、「エンジニア力」、「ビジネス」の全てが試されるのではと思います。

まとめでずらずら書いてしまいましたが、知れば知るほど奥が深い機械学習の世界これからも走り続けられるように私自身精進して参ります！！
皆様も素晴らしいML・エンジニアライフを💪