2015年6月20日土曜日

IG例:毒キノコ判定

Entropy and Information Gain からの続き。

predictive model は「予測モデル」「予見モデル」と仰々しく訳されるが

このキノコは食えるのか?

を、キノコの特徴から判定するのも、立派な predictive model、そんな「キノコの判定」をデータ分析の手法で行う。今回も、Foster Provost, Tom Fawcett 著「Data Science for Business」第3章  Introduction to Predictive Modeling: From Correlation to Supervised Segmentation を元にした。

以下は Table 3-1. The attributes of the Mushroom dataset の一部で、5,644 個のキノコのサンプルから、属性(「匂い」など)と値(「アーモンド」「無臭」など)を抽出したもの。最後の行が Target variable

 Edible? (食べられる?)
この属性と値のデータを使って求めるのは

Which single attribute is the most useful for distinguishing edible (edible?=Yes) mushrooms from poisonous (edible?=No) ones?” P.57

つまり「食べられるキノコの判定に最も有効な属性はどれか?」を求めること。それを、前回取り上げた IG (Information Gain) を使って求める。

以下では、属性の選択によって entropy chart の変わり方を見る。

未分類の状態

全サンプル 5,644 個の内、2,156 個が毒キノコ、3,488個が食べられるキノコ、この entropy

-1*(2156/5644*log(2156/5644,2) + 3488/5644*log(3488/5644,2))
##[1] 0.959

0.96で、50/50 の場合の 1.0 よりは多少低い(超未分類状態)、これが分類前の初期値。

この entropy chart は、上手く分類されると entropy 値が下がり青影が減り白地が増える(IG増加)

GILL

軸原点から y(yellow), u(purple), n(brown) と、低い entropy 値だが、割合を示す「棒の幅」が狭く、全体的には青影が多い。とはいえ、未分類時よりは多少 entropy は低下。
SPORE-PRINT-COLOR(胞子紋の色)

h(chocolate) を含む幾つかの値で zero-entropy、つまり完全に分離させている。しかし、それらは 30% 程度にすぎず、全体的にも青影が目立つので「pure な分類」とは言い難い。

ODOR(匂い)

左図の 青影 n(no odor)entropy0.2 で幅を 0.5 と見積もって、これらを除くと他は全て なので、IG

0.96 - (0.2 x 0.5) = 0.86

これが意味するのは

If you’re going to build a model to determine the mushroom edibility using only a single feature, you should choose its odor. If you were going to build a more complex model you might start with the attribute ODOR before considering adding others. P.62
たった一つの属性で食べられるキノコを選ぶ場合、「匂い」を選択すべき。他の属性を加えたより複雑なモデルを構築する場合、「匂い」の判断から始めるべき。

これは、前回の「破産予測モデル」で「債務バランス」を優先するのと同じ理論


データ分析の基本:ツリー構造、セグメント化

本書は、先の「毒キノコ分類」以降から「ツリー構造」によるセグメント分析が述べられている。ツリー構造による分析の呼び名は

tree-structured model
tree induction

decision tree(決定木)もツリー構造の一種だろうが、その違い等については割愛。

以下、「顧客が破産するか」の分類で、末端の楕円部分が leaf(葉の部分)で、Write-offNot Write-off(破産かそうでないか)を表す。

左図では、最上段の Root node "Employed" から開始して、以下の Interior nodes"Balance", "Age" と続く。

例えば  (Employed = No, Balance = 115K, Age < 45) の人は、"Not Write-off"(最下段左 Leaf)に分類される。

左図のようにツリーと二次元のセグメント分類を組み合わせると、より明確に示すことができる。ここでは "プラス" が "No Write-off"、 "黒点" が "Write-off"。

このように、基本的な手法のツリー分析でも、かなり突っ込んだデータ分析が可能となる。データ分析の専門家でなくても、専門家と共に分析結果の評価ができる。


現代の「毒キノコ分類法」

先人は、毒キノコをどうやって見分けたのだろうか? 勘というより、経験(毒キノコを食べてどうなったかの情報)の蓄積による「知恵」だったのかもしれない。

現代において、「経験の蓄積」は「情報の蓄積」も意味する。

先の毒キノコや破産予測の例は、人間の思考方法と同様のアルゴリズムと言える。つまり、合理的な判断(「可能な限り毒キノコを避ける判断」)を積み重ねながら結論を導きだす。とはいえ、これら予測モデルは、単に数学的な判断を繰り返すだけで、「現実的に合理的か?」は現段階ではなんとも言えない。

とはいえ、このような単純な例からも「人工知能」の基本的な仕組みは想像できるだろう。


データ分析入門書の決定版

日本の書籍で、本書のように Information Gain やツリー構造を丁寧に解説した本を知らない。あっても、数学的な解説に終始したアカデミックなもので、実践的には程遠い。その代わりに目につくのは、「サンプルデータを分析ツールに流した結果は...」みたいな「実践的」と自称する本。そんな本には、分析方法の解説があまりにも少ない。


さて本書「Data Science for Business」、半年ほど前に第7章まで読んでいた(Confution Matrix について投稿もした)が、一旦中断していた。他の本(Naked Statistics など)を優先したのも理由だが、もっとジックリ本書を理解したいというのが最大の理由。実際、今回取り上げた Entropy や  Information Gain は、最初に読んだ頃は今ほどの理解には至らず、モヤモヤしていた。

本書は、決して難しい本ではない。英文も読みやすい。何といっても「データ分析とは?」を、実践的な解説で、且つ丁寧になされている。私にとって データ分析入門書の決定版 と断言できる。これから、ジックリ読み進めようと思う(日本語版の方は読んでいないので不明)。

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック
Foster Provost Tom Fawcett
オライリージャパン
売り上げランキング: 31,126

0 件のコメント:

コメントを投稿