書籍概要

評価指標入門
〜データサイエンスとビジネスをつなぐ架け橋

著者
発売日
更新日

概要

「評価指標でXXXという最高のスコアが出た!」と喜び勇んで,機械学習モデルが出力してくる予測結果をもとにビジネスを運用したとします。 ところが,ビジネス上のKPIと相関が高い評価指標を選んでいなかったために,KPIの推移を見てみると大した変化がありませんでした。 あるいは「毎日夜遅くまで残業をして,特徴量生成とクロスバリデーションによって評価指標を改善しました!」というデータサイエンティストがいたとします。ところが,KPIの改善のためには そこまで高い評価指標の値を達成する必要ありませんでした。このようなケースでは,データサイエンティストが費やした工数がすべて水の泡となってしまいます。----------(はじめにより)----------

このような状況が起きてしまう背景にはさまざまな原因が考えられますが,あえて一言で言うと「データサイエンスの問題が解くべきビジネスの問題と乖離していた」ためです。

機械学習モデルの”良し悪し”を決めるときには,評価指標(Evaluation Metrics)を必要とします。本質的に評価指標の設計方法は自由であり,ビジネス上の価値を考慮して自ら作成することも可能です。RMSEやAUCといったスタンダードなものから,ドメインに特化した数値まで,あらゆる指標が評価指標になりえます。では評価指標はどのように決めるのが良いのでしょうか。また,どのように決めれば冒頭のような悲しい状況を生まずに済むのでしょうか。

本書はこれらの疑問に答えるため,機械学習の良し悪しを決める評価指標を軸に,解くべきビジネスの問題をどうやってデータサイエンスの問題に落とし込むのか,その原理を解説していきます。この原理が普遍的なものであれば,ビジネスがどんなものであっても応用できると考えることができます。

回帰,分類で使用するスタンダードな評価指標についても,基本から丁寧に解説します。本書を読むことで,どのようなケースでどの評価指標を選ぶべきかがわかり,評価指標の読み間違いを避けることができます。

こんな方におすすめ

  • 日々,評価指標に思いを馳せている方

目次

  • ビジネスとデータサイエンスを架けるもの

1章 評価指標とKPI

  • 1.1 機械学習と評価指標
  • 1.2 機械学習と最適化計算
  • 1.3 機械学習プロジェクトの流れ
  • 1.4 評価指標とは
  • 1.5 評価指標とKPIと目的関数の関係
  • 1.6 評価指標の決め方を間違えないために
  • 1.7 KPIの特質を損失関数と評価指標に反映する
  • 1.8 まとめ

2章 回帰の評価指標

  • 2.1 回帰とは
  • 2.2 データセットと回帰モデルの準備
  • 2.3 平均絶対誤差
  • 2.4 平均絶対パーセント誤差
  • 2.5 二乗平均平方誤差
  • 2.6 対数平均二乗誤差
  • 2.7 モデルの評価
  • 2.8 真に使うべき評価指標
  • 2.9 その他の評価指標
  • 2.10 まとめ

3章 二値分類における評価指標

  • 3.1 二値分類と評価指標
  • 3.2 データセット
  • 3.3 混同行列
  • 3.4 正解率
  • 3.5 マシューズ相関係数
  • 3.6 適合率
  • 3.7 再現率
  • 3.8 F1-score
  • 3.9 G-Mean
  • 3.10 ROC-AUC
  • 3.11 PR-AUC
  • 3.12 pAUC
  • 3.13 Employee Promotion Dataデータセットの評価
  • 3.14 ビジネスインパクトの期待値計算
  • 3.15 コスト考慮型学習
  • 3.16 まとめ

4章 多クラス分類の評価指標

  • 4.1 多クラス分類とは
  • 4.2 データセット
  • 4.3 混同行列
  • 4.4 正解率
  • 4.5 適合率
  • 4.6 再現率
  • 4.7 F1-score
  • 4.8 ROC-AUC
  • 4.9 最適な評価指標の考察
  • 4.10 まとめ
  • 付録 ビジネス構造の数理モデリング

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2023年2月27日最終更新)

P.255 本文1行目

なぜこの値がTPに等しくなるかというと、分子がTPと等しくなるその理由ですが、分子の数式は
なぜこの値がTPに等しくなるかというと、この数式は

P.33 図1.6の散布図の横軸のラベル

Relative Difference Perfpmance
Relative Difference Performance

P.42 数式

+その他固定費
-その他固定費

P.212 TNの説明

モデルがクラスAだと判定して、実際にクラスAでないケース(TN)
モデルがクラスAでないと判定して、実際にクラスAでないケース(TN)

P.219 理解しにくい記述のため修正

Macro ROC-AUCは単純に各クラスのAUCの値の平均をとるため最も高い値になります。しかし、クラスごとのAUCから算出しているわけではなく、前述のMicro の算出方法によってデータ全体で算出しているため、各クラスごとのサンプル数によっては他のどのクラスのAUCよりも高くなるケースがあります。
3章で紹介した「予測値を降順に並べ変えたとき、真のクラスがPositiveのデータが上に偏っている」というROC-AUCの特徴を思い出します。データ全体で予測値を降順に並べ変えた場合、予測値の上位には多数派のクラス0とクラス1の両方が多くを占めるため、Micro ROC-AUCが最も高い値になっています。

(以下2023年2月16日更新)

P.123 本文

レコメンドと情報検索を例に考えていきましょう。
レコメンドを例に考えていきましょう。

「と情報検索」が不要です。

P.129 本文

1.8節で前述した通り
3.7節で前述した通り

P.240 URL

https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html
https://scikit-learn.org/1.1/auto_examples/model_selection/plot_roc.html

(以下2023年2月15日更新)

P.73 ディレクトリ構造

Evaluation_for_binary_classifications.ipynb
Evaluation_for_regression.ipynb

P.191 コードブロック2行目(plot_confusion_matrixではなく,confusion_matrix)

import matplotlib.pyplot as plt
from sklearn.metrics import  plot_confusion_matrix
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split

商品一覧