決定木 decision tree

樹木モデル
tree-based model
平岩将良
樹木モデルとは?
根root
枝branches
節nodes
葉leaves
• 決定木decision tree
• 回帰木regression tree
等がある
樹木モデル
解析できるデータ
応答変数 ~ 説明変数1 + 説明変数2 + ・・・
のような線形モデル(GLM)で扱う形のデータ
利点
説明変数がいくつあっても1つの樹形図で結果が
でてくるので、データが直感的に理解しやすい
樹形モデルを扱えるRの関数
• tree()
• rpart()
• mvpart()
それぞれ樹形の作り方が異なる
今回はmvpartを使用
決定木
DECISION TREE
決定木ってなに?
応答変数がカテゴリカル(質的)な場合の樹木モデル
例
集合時間に
間に合うかどうか
集合時間に
寝た時間
昼寝
雨
間に合う
23時
した
降らなかった
遅刻
24時
しなかった
降った
遅刻
2時
した
降らなかった
間に合う
4時
しなかった
降った
遅刻
3時
しなかった
降った
間に合う
2時
した
降らなかった
:
応答変数
:
:
:
解析の流れ
生成・生長
枝を伸ばす
剪定
いらない枝を切り落とす
解析の流れ
生成・生長
枝を伸ばす
剪定
いらない枝を切り落とす
生成・生長
ジニ係数
• 不純さを表す指標(純粋0⇔1不純)
データ
遅刻
間に合う
2個とりだしたとき
この組合せがでる確率
ジニ係数
=1-((1/5)2+(1/3)2)= 0.849
データ
遅刻
間に合う
説明変数
雨が
寝たのは
降らない
降る
2時より前
0.32
0.44
0.375
ジニ係数
加重平均
0.365
2時以降
0.5
加重平均
0.4375
昼寝
した
しなかった
0.48
0.44
加重平均
0.465
ジニ係数(不純度)の一番低い分岐点を採用
雨が
降らない
降る
それぞれを同様に分岐させていく
生成・生長完了
集合時間に
間に合うかどうか
雨が
降っている
降っていない
遅刻する
夜寝たのは
2時以降
2時より前
間に合う
昼寝した
yes
間に合う
no
遅刻する
解析の流れ
生成・生長
枝を伸ばす
剪定
いらない枝を切り落とす
剪定
交差確認法
cross validation
1.データをテストデータ
とトレーニングデータ
に分ける。
2.トレーニングデータだ
けでモデルをつくる。
3.できたモデルとテスト
データを比較し、答え
合わせをし、精度を
求める。
4.1~3をn回繰り返し、平
均する。
枝の剪定
s11=a
s11=b
safe
45/55
s30=b
chikoku
8/4
s25=b
Size of tree
3
s25=a
chikoku
12/8
safe
25/43
4
1.4
1
s30=a
safe
37/51
safe
7/8
1.1
1.0
s11=a
s11=b
safe
45/55
Min + 1 SE
0.9
s30=b
chikoku
8/4
s30=a
safe
37/51
0.8
X-val Relative Error
精
度
(
小
さ
い
程
よ
い
)
1.2
1.3
chikoku
5/0
chikoku
12/8
Inf
0.044
cp
モデルの複雑さ
0.015
safe
25/43
完成
雨が
降っている
降っていない
遅刻する
夜寝たのは
2時以降
遅刻する
2時より前
間に合う
・雨が降ると遅刻する
・昼寝の有無に関係なく、寝るのが遅いと遅刻する
回帰木
REGRESSION TREE
応答変数が量的な場合
基本的には決定木と同じ
例えば…
線形モデルだと
回帰木だと
ありがとうございました
分類木
>2.00mm
体長
<2.00mm
s11=a
s11=b
safe
45/55
s30=b
chikoku
8/4
s30=a
safe
37/51
s25=b
s25=a
chikoku
12/8
chikoku
5/0
safe
25/43
safe
7/8
s11=a
s11=a
s11=b
s11=b
safe
45/55
safe
45/55
s30=b
s30=a
s30=b
chikoku
8/4
safe
37/51
s25=b
safe
37/51
s25=a
chikoku
12/8
chikoku
5/0
chikoku
8/4
s30=a
safe
25/43
safe
7/8
chikoku
12/8
safe
25/43