アッテル分析ブログ

経営(ヒト・モノ・カネ)に関して定量的な分析を発信する 株式会社アッテルのブログ

未来予測における予測精度のいろいろな算出方法

今回は、
退職予測「正解率80%」はどれだけ意味があるのか?
の記事の補足として、「未来予測における予測精度の算出方法」 についてまとめます。

 

未来予測(機械学習)の結果を理解するうえで、必要になる概念をまとめてみます。
※もし間違えた理解をしてしまっている場合には、ご指摘いただけますと幸いです。

 

「混同行列」(Confusion matrix)

未来予測をする場合には、

  1. 「学習用データ」を用いて、「予測モデル」を作成する
  2. 「予測モデル」を用いて、「検証用データ」の未来予測をする
  3. 「検証用データ」の予測した結果と、実際の結果を比較して、「予測モデル」の精度を確認する

という手順で行われます。

この手順の最後の「予測した結果」と「実際の結果」の関係性を表にしたものが「混同行列」といわれる表です。

f:id:trans-inc:20181010155740p:plain

 

上記の表は「A」と「B」の2つのカテゴリへの分類ですが、カテゴリが「3つ以上」でも混同行列を作ることができます。(後述します。)

 

「正解率」(accuracy)

「正解率」と聞くと
「予測があっている数」÷「全体の数」
でしょ?

と思われると思います。

まさにその通りなのですが、予測でカテゴリを分類する場合、先ほどの例だと「A」と「B」のカテゴリがあるため、カテゴリをふまえた予測全体での「正解率」を計算する必要があります。

 

説明のため、先ほどの混同行列を少し書き換えます。

f:id:trans-inc:20181010160338p:plain

それぞれの象限を「TP」「FP」「FN」「TN」と呼ぶことにします。

「正解率」は予測があっている割合という意味の指標で、
正解率」 = (TP + TN) / 全体(=TP+FP+FN+TN)
と表されます。

 

プレスリリースなどでよく「未来予測の正解率80%」といっている指標は、この指標の場合が多いです。

 

予測率80%」といわれると、直感的に「TP」だけをイメージしてしまうため、注意が必要になります。

 

「再現率(recall)」「適合率(precision)」

次に、以下のようなケースを考えます。
(イメージしやすいように退職に置き換えました)

f:id:trans-inc:20181010162305p:plain

前述の通り、
「正解率」 = (TP + TN) / 全体(=TP+FP+FN+TN)
を計算すると
「正解率」 = (1人 + 100人) / 121人 ≒ 83%
となります。

 

「正解率83%」と聞くと、一瞬すごそうに聞こえますが、よくよく表を見てみると「11人(TP+FN)」の退職者のうち、適切に予測ができたのは「1人(TP)」だけです。

このように「正解率」だけでは、予測精度の評価を見誤る可能性があるため、「正解率」のほかに、「再現率」と「適合率」という指標を用います。

 

「再現率」 = TP /(TP + FN)
 ※実際に「退職」した人のうち、どれだけ「退職」と予測できたか

「適合率」 = TP /(TP + FP)
 ※「退職」と予測した人のうち、どれだけ実際に「退職」したか

 

先ほどの例で「再現率」と適合率を計算すると
「再現率」 = 1人 /(1人+11人) = 11%
「適合率」 = 1人 /(1人+11人) = 11%
となり、「正解率」は83%と高いものの、予測精度として高くないと判断することができます。

 

これまでに出てきた「混同行列」「正解率」「再現率」「適合率」をまとめると以下の図になります。

 

f:id:trans-inc:20181010164440p:plain

※個人的には、「再現率」と「適合率」が、どちらの計算式を指すのかをよく間違えます。。

 

F値」(F-measure)

ここまでくると
「正解率」「再現率」「適合率」のうち、結局どれを見ればよいの?
という疑問が生まれてくるかもしれません。

 

特に「再現率」と「適合率」は、多くの場合トレードオフ(一方を高めると、もう一方が低くなる)の関係にあるため、この2つの指標を統合した指標=「F値」が考えられています。

F値」 = 2 * 「再現率」* 「適合率」/(「再現率」+「適合率」)

※「再現率」と「適合率」の「調和平均」と呼ばれます。

 

そのため、予測モデルの結果を見る場合には、
F値はどの程度か?」
を確認すると、そのモデルの予測精度の高さを知ることができます。

 

「Kappa係数」(kappa coefficient)

F値」は予測精度を考慮するうえで1つのよい指標と考えていますが、1つ問題があります。

それは「3つ以上のカテゴリ」に分類する場合です。

f:id:trans-inc:20181010171549p:plain

※表中の「AA」「XA」などの文字表記は、一般的ではありませんのでご注意ください。

 

分類するカテゴリが「3つ以上」の場合、
・「A」「B」「C」それぞれに関する「再現率」「適合率」は出せる
・一方、予測モデル全体としての評価が難しい
という問題があります。

「マクロ平均」「ミクロ平均」などの考え方もあるのですが、モデル全体のばらつきを考慮できる指標として「Kappa係数」を紹介します。

 

「Kappa係数」は、
「1つの事象を2人が観察し分類した際に、結果がどの程度一致しているか」
を表す指標です。

これを「2人の観察結果」ではなく「予測」と「実際」に置き換えて考えることで、予測の一致度を測る指標として用いることができる可能性があります。

 

ちなみに、Kappa係数の計算式は以下の通りです。

「正解率」= (AA + BB + CC)/ ALL 
「偶発正解率」=(AX*XA + BX*XB +CX*XC)/ ALL 
「Kappa係数」 =  (「正解率」- 「偶発正解率」)/ (1 - 「ランダム正解率」)

※「偶発正解率」も造語です。すみません。
※「Kappa係数」は「ランダムに予測したときの正解率(=偶発正解率)」と比べて、「正解率」がどれほど正確かを表す計算式と理解しています。

 

まとめ

今回は、
未来予測における予測精度の算出方法(主に指標)
についてまとめてみました。

 

今回のシリーズでは、この知識を使って、
退職予測「80%」はどれだけ意味があるのか?
を深堀していきますので、ぜひこちらの記事もご覧ください。

 

 

※執筆者:塚本鋭

 東京大学・大学院において、複雑ネットワークや大規模シミュレーションに関する研究に従事。人工知能学会研究会優秀賞・東京大学工学系研究科長賞 等を受賞。 大学院修了後、株式会社野村総合研究所コンサルタントとして入社し、ICT・メディア領域を担当。2013年1月より株式会社クラウドワークスに8番目の社員として参画し、2014年12月に上場を経験。データ分析・産官学連携を軸としながら、B2B事業立ち上げ、カスタマーサポート部門立ち上げ、子会社副社長等を歴任。2018年より現職。