B-log

コンサル→ベンチャー。ビジネス系のネタ。

【初心者向け】機械学習をビジネスにつなげる「評価指標」の解説と活用事例

 
本記事は、機械学習が初めての方でも「『評価指標』が何となくわかった気になること」をゴールとします。
 
機械学習における評価指標とは、「どんなモデルを良しとするかのモノサシ」です。
評価指標は、ビジネスと機械学習の成果を結び付けるとても大切な概念です。
しかし、横文字や数式が出てきて、理解を諦めてしまう方も多い気がします。
 
しかし、「評価指標」をちゃんと理解しておかないと「精度9割なのに全く使えない」なんてモデルができてしまうこともあります。
これを避けるため、文系・ビジネスサイド・機械学習初めてのような方を念頭に、機械学習の「評価指標」をなるべく丁寧に解説したいと思います。
 
長いので先に要約すると、こんな感じです。
f:id:f-bun:20190208173648p:plain
 
 

 

(関連エントリ)

 

これだけ理解すれば大丈夫

今回は、機械学習の中でも「分類」と呼ばれる、「売れる/売れない」のような結果のカテゴリを予測するようなケースについて説明します。
 
先に結論を言うと、以下3(+1)つを理解すれば、なんとなく会話はできるようになります。
  • 正答率 Accuracy
  • 適合率 Precision
  • 再現率 Recall
  • (応用編として、F値 F-measure)

前提知識

機械学習(というか数学・統計)の世界では、
「予測が当たった/外れた」の組み合わせを、下図のように分割して名前をつけています。

f:id:f-bun:20190205215051p:plain

・・・が、この絵の時点で混乱する方もいると思います。 

 

シンプルなケース:コピー機の飛び込み営業

そこで、シンプルな例として、ある製品が「売れる/売れない」を予測するモデルを想定します。
 
<ケース> コピーの飛び込み営業
  • コピー機の飛び込み営業
  • どの会社が「売れる」のか「売れない」のかを、機械学習で予測する
  • 過去1年間のデータを使って、予測&答え合せをしてみる
実際の結果は2パターンで「売れる」「売れない」。
予測も当然に2パターンで「売れる」「売れない」。
 
で、予測結果と実際(答え)の組み合わせを表にすると、こう分類できます。
 

f:id:f-bun:20190208173151p:plain



」が正解「×」が不正解ですね。
 
もしわかりにくい方は、インフルエンザの検査も基本的に同じなので
「売れる」→ インフル
「売れない」→インフルじゃない
で置き換えてください。ちなみにこうなります。

f:id:f-bun:20190208174112p:plain
 

なんとなく理解すればOKです。
前提知識は以上です。
 
 

具体的な評価指標と使用場面

冒頭述べたとおり、「評価指標」とは、どんなモデルがいいのか、を測るものさしです。
私のような文系ビジネスサイドがなんとなく思い浮かべる「精度」みたいなものだと思ってください。
ところが、文系が思い浮かべる「精度」には実は何パターンかある、というのがミソです。
 

要約

重複しますが、とりあえず理解するのは以下だけで大丈夫です。
  • 正答率 Accuracy
  • 適合率 Precision
  • 再現率 Recall
  • (応用編として、F値 F-measure)
それぞれについて
---------
-定義
-例えばどういうこと?
-どんな時に使うの?
-弱点は?
---------
あたりを説明していきます。
 
 

正答率 Accuracy

正答率とは
正答率(Accuaracy)とは、「全部のうち、正解したものの率」です。 
 
絵に表すとこんな感じ

f:id:f-bun:20190208173506p:plain

 
例えば
  • 全部で100件
  • 売れると30件予測 → そのうち4件で実際売れた
  • 逆に売れないと予測したのは70件 → そのうち69 件は実際売れなかった(1件は予測に反して売れた)
ならば、正答率は73%(=(4+69)÷100)です。
 
すなわち全体に占める
・予測も実際も『買う』 もしくは
・予測も実際も『買わない』
の割合です。
 
どんな時に使うの?
買う/買わない に偏りがない場合などに使う基本形だそうです。
実際、一見これで問題なさそうですよね。
 
・・・でも、今回のケースでは、使えません。
 
 
弱点は?
正答率は、今回のケースでは、そのまま使えません。
 
だって、とびこみ営業でコピー機買う会社なんて、5%もないから。
そうすると、「全員買わない」と予測すれば「正答率」は95%以上になってしまいます。
 
機械学習を使って、コピー機が売れるかどうか予測できるようになりました!なんと『正答率95%』です!そのモデルによると、、、どこも売れません! 」
とか言われても、ビジネス上は何の役にも立ちません。
 
そこで登場するのが「適合率」です。
 

適合率 Precision

適合率とは
適合率(Precision)とは、今回のケースだと「『売れる』と予測したうち、実際『売れる』人の割合」です。
 
すなわち、絵で表すとこんな感じ。

f:id:f-bun:20190208174912p:plain

 
例えばこういうこと
  • 売れると30件予測 → そのうち4件で実際売れた
  • 逆に売れないと予測したのは70件 → そのうち69 件は実際売れなかった(1 件は予測に反して売れた)
というケースであれば、適合率は13%(=4÷30)です。
 
「売れる」と予測した先が30件で変わらないなら、
実際売れるのが15件なら、適合率は50%(=15÷30)、
実際売れるのが24件なら、適合率は80%(=24÷30)と高まっていきます。
 
どんな時に使うの?
基本的には「打率を高めたい」時に使います。
裏を返すと、「売れると思ったのに、行ってみたら売れなかったリスト」を極小化するということです。
 
例えば、セールスパーソンの急な退職が続いて、訪問できる件数が限られているなら、
なるべく無駄打ちは少なくしたいはずです。
「ムダ打/ハズレを減らしたい」「打率を高めたい」「リソースが限られている」ケースなどでは、「適合率」は使えそうです。
 
今回のコピー機飛び込み販売のケースでも、「適合率」は結構良さそうです。
 
 
弱点は?
ところが、まだ問題があります。
なぜなら超厳選リストを作ってしまう恐れがあるからです。
 
例えば、
  • 顧客リストが1,000件
  • そこからの契約獲得件数目標が100件
というケースを想定します。そこで
  • 売れると予測した先:10件
  • そのうち実際売れる先:9件
ならば、適合率は90%になります。
確かに適合率は高い。
 
でも、 契約獲得目標が100件なので、あと91契約取らなくちゃいけない。
「残ったリストは990件は売れないと思います!」とか機械学習様に言われても、セールスとしてはアタックするっきゃない。
これじゃ、「機械学習を使ってセールスのアタックリスト作ってます」って世界はとっても遠い。
 
そこで登場するのが「再現率」です。
 

再現率 Recall

再現率とは
再現率(Recall)とは、今回のケースでいうと「実際売れる人全体のうち、事前に売れると予測できた人」です。
すなわち、絵で表すとこんな感じ。

f:id:f-bun:20190208173539p:plain

 
例えば
  • 売れると30件予測 → そのうち4件で実際売れた
  • 逆に売れないと予測したのは70件 → そのうち69 件は実際売れなかった(1件は予測に反して売れた)
だったら、再現率は、80%(=4÷5)です。
 
ちなみに、実際数字いじってみるとわかりますが、
適合率と再現率はトレードオフの関係(どちらかを上げれば、どちらかが下がる関係)にあります。 
 
どんな時に使うの?
「取りこぼしを最小化したい」時に使えそうです。
 
再現率を高めるということは、
「売れないと思ってアタックしなかったけど、もし行ってたら売れた先」を極小化する指標だからです。
 
「絶対的に獲得件数を増やしたい」「取りこぼしを最小化したい」「リソースや顧客へのアプローチ方法はたくさんある」
みたいなケースで使えそうです。
 
弱点は?
ただ、再現率だけを見るのも問題があります。
全員「売れる」と予測すれば、当然再現率は100%になるからです。
空振りの回数が増えるってことですね。 これまた機械学習の意味なし。
 

応用編:F値・重み付けF値  F-measure

F値とは
応用編ですが、適合率と再現率がトレードオフの関係にあるので、そのバランスをとる「F値」という指標もあります。
数式的には、こんな感じです。

f:id:f-bun:20190205220534j:plain

要は「適合率と再現率の調和平均」です。
・・って言われて分かる方は、この記事読んでいないと思います。笑
 
なので、思い切って「どんな時に使うのか」と「弱点」だけ理解すればいいと思います。
 
どんな時に使うの?
「バランスとってよ」です。
ただ、再現率と適合率をどのバランスで取って欲しいかは、ビジネスによって異なるので、この比重を変えた「重み付けF値」なるものもあります。
ただ、私はこの辺は理解する必要ないと思います。
「『バランスとってよ』って考え方あるんだな」くらいで十分だと思います。
 
弱点は
「バランスとってよ」なので、基本的に良さそうです。
「重み付けF値」なるものなら、さらに良さそうです。
 
ただ、ビジネス実務においては「バランスどこで取るか」って、状況によって結構変わります
なので、比率が固定のF値(重み付けF値)だけをみると、失敗することもあるんじゃないかな、と思います。
 

実際使える一覧表

以上、4つの「評価指標」について解説してきました。まとめるとこんな感じになります。

f:id:f-bun:20190208173648p:plain



 
 
ただ、それぞれの評価指標には弱点があります。
なので、状況に応じた使い分けが必要です。
 
また、実際の評価指標はこれ以外にも色々あります。
ただ、「ビジネス上のリクエストを正確にデータサイエンティストに伝える」という意味だと、上記4つ(ないしF値除いた3つ)をしっかり理解しておく方が、圧倒的に重要だと思います。
 
逆に、これさえ理解できていれば「適合率は0.4くらいを死守してほしい。その中で、再現率を限界まで高めてほしい。そんな感じでいける?」みたいな会話ができるようになります。
  
私と同じく機械学習に苦しむ文系ビジネスサイドの方のお役にたてば幸いです。
 
『AIって何? 』『機械学習って?』をもう少し勉強したい方は、こちらの本が大変オススメです。