Upgrade to Pro — share decks privately, control downloads, hide ads and more …

木構造1~決定木の仕組み(分類)

K_DM
October 03, 2021
110

 木構造1~決定木の仕組み(分類)

分類木の基本について、スライドを作成しました。
動画→https://www.youtube.com/channel/UCFy3VBvZBeE9bN0F2sxF8rg

K_DM

October 03, 2021
Tweet

Transcript

  1. 決定木の各部分の名称 条件分岐を組合せて結論を導く木構造の予測モデル 根(root node/the root) 気温は25℃超えてますか? 夏 湿度は50%超えてますか? No Yes

    気温は15℃超えてますか? クーラーをつけてますか? 夏 春 春 春 No Yes No Yes No Yes 枝(branch) ノード(node) 葉(leaves/leaf nodes) 深さ(depth)
  2. 決定木を作るアルゴリズム 店舗の商品が売り切れになるかどうか予測したい ༵೔ ࡏݿ਺ ചΓ੾Ε ٳ೔ 10 ͸͍ ฏ೔ 30

    ͍͍͑ ٳ೔ 20 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 30 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 20 ͸͍ ฏ೔ 10 ͸͍ ٳ೔ 10 ͸͍ 目的変数
  3. 分岐の良さを比較したい 様々な分岐を作ることができるので、分岐の良さの基準をつくりたい ༵೔ ࡏݿ਺ ചΓ੾Ε ٳ೔ 10 ͸͍ ฏ೔ 30

    ͍͍͑ ٳ೔ 20 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 30 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 20 ͸͍ ฏ೔ 10 ͸͍ ٳ೔ 10 ͸͍ 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5 ͸͍ ͍͍͑ 3 0 天気予報は晴れ? No Yes ͸͍ ͍͍͑ 3 1 ͸͍ ͍͍͑ 1 4 特徴を選んで 分岐を作ってみる どちらの分岐がより良いと言える?
  4. 不純度(Impurity) 異なるクラスがどれくらい混ざっているかを測る指標 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5 ͸͍

    ͍͍͑ 3 0 天気予報は晴れ? No Yes ͸͍ ͍͍͑ 3 1 ͸͍ ͍͍͑ 1 4 ͸͍ ͍͍͑ 4 5 元のデータ 分岐を作った結果としてデータの不純度が減少すれば、良い分岐と言える 木を使って予測ができる
  5. Gini-不純度(Gini-Impurity) 完全に分類できた場合のみ0になる不純度の基準 G(1) = 1 − ( 4 9 )2

    − ( 5 9 )2 = 40 81 G(k) = 1 − Σc i=1 ( ni n )2 • クラス数, 今回の場合は2 • ノードにあるデータ数 • クラス に属するデータ数 c = n = ni = i ͸͍ ͍͍͑ 4 5 元のデータ 元のデータの不純度
  6. Gini-不純度(Gini-Impurity) 完全に分類できた場合のみ0になる不純度の基準 G(k) = 1 − Σc i=1 ( ni

    n )2 • クラス数, 今回の場合は2 • ノードにあるデータ数 • クラス に属するデータ数 c = n = ni = i 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5 ͸͍ ͍͍͑ 3 0 天気予報は晴れ? No Yes ͸͍ ͍͍͑ 3 1 ͸͍ ͍͍͑ 1 4 G(2) = 1 − ( 1 6 )2 − ( 5 6 )2 = 10 36 G(3) = 1 − ( 3 3 )2 − ( 0 3 )2 = 0 G(2) = 1 − ( 3 4 )2 − ( 1 4 )2 = 6 16 G(3) = 1 − ( 1 5 )2 − ( 4 5 )2 = 8 25 分岐後のGini不純度の 重み付け平均 6 9 10 36 + 3 9 0 = 5 27 4 9 6 16 + 5 9 8 25 = 31 90
  7. 情報利得(Information Gain) 分岐した時に、分岐前と比較してどれくらい不純度が下がったか 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5

    ͸͍ ͍͍͑ 3 0 G(2) = 1 − ( 1 6 )2 − ( 5 6 )2 = 10 36 G(3) = 1 − ( 3 3 )2 − ( 0 3 )2 = 0 分岐後のGini不純度の 重み付け平均 6 9 10 36 + 3 9 0 = 5 27 G(1) = 1 − ( 4 9 )2 − ( 5 9 )2 = 40 81 ͸͍ ͍͍͑ 4 5 元のデータ 元のデータの不純度 40 81 − 5 27 = 25 81 情報利得 情報利得が大きい分岐= 分岐によって不純度が大 きく減少する分岐
  8. 数値データの分岐の作り方 数値をソートして、可能な分岐点すべてに対してGini不純度を計算する ࡏݿ਺ ചΓ੾Ε 10 ͸͍ 30 ͍͍͑ 20 ͍͍͑

    20 ͍͍͑ 30 ͍͍͑ 20 ͍͍͑ 20 ͸͍ 10 ͸͍ 10 ͸͍ ࡏݿ਺ ചΓ੾Ε 10 ͸͍ 10 ͸͍ 10 ͸͍ 20 ͍͍͑ 20 ͍͍͑ 20 ͍͍͑ 20 ͸͍ 30 ͍͍͑ 30 ͍͍͑ 数値でソート ジニ不純度 5 27 ジニ不純度 8 21 > よりジニ不純度が 小さくなる点で分岐を作る
  9. 決定木を作るアルゴリズム 1.各特徴から情報利得が最大になる分岐を見つけてくる G(1) = 1 − ( 4 9 )2

    − ( 5 9 )2 = 40 81 ͸͍ ͍͍͑ 4 5 元のデータ 元のデータの不純度 分岐後のGini不純度の重み付け平均 5 27 31 90 在庫数10より大きいか 曜日 ༵೔ ࡏݿ਺ ചΓ੾Ε ٳ೔ 10 ͸͍ ฏ೔ 30 ͍͍͑ ٳ೔ 20 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 30 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 20 ͸͍ ฏ೔ 10 ͸͍ ٳ೔ 10 ͸͍ 情報利得(分岐後との不純度の差)がより大きいのは 「在庫数が10より大きいか」で分岐した時なので、 これで分岐をつくる 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5 ͸͍ ͍͍͑ 3 0
  10. 決定木を作るアルゴリズム 2.分岐後の各ノードについて、同じ作業を繰り返す ༵೔ ࡏݿ਺ ചΓ੾Ε ٳ೔ 10 ͸͍ ฏ೔ 30

    ͍͍͑ ٳ೔ 20 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 30 ͍͍͑ ฏ೔ 20 ͍͍͑ ٳ೔ 20 ͸͍ ฏ೔ 10 ͸͍ ٳ೔ 10 ͸͍ もうジニ不純度が0でこ れ以上不純度は減少しな いので、これを葉にする 在庫は10より多い? No Yes ͸͍ ͍͍͑ 1 5 ͸͍ ͍͍͑ 3 0 No Yes このノードに含まれる6個の データに対して、ステップ1 と同じ作業をする 在庫は30より少ない? … …