SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
決定木

    東京大学 三好雄也



1
決定木
        決定木とは、データの特徴量を用いた簡単なルールで分岐を
         作り、特徴空間を分割することを通じて判別や回帰を行うモ
         デルのこと
        モデルの種類:CARTやC4.5(C5.0)
        CART
1.       木の構築:何らかの基準を満たすまで、予め定義しておいたコストに基
         づいて特徴空間を2分割する手続きを繰り返す
2.       剪定(pruning):構築された木の深さが深いほど複雑なデータを扱うこ
         とができるが、過学習の可能性がある。そこで、過学習を防ぐため、予
         め定めておいたパラメータによってモデルの複雑度を制御すること


        利点:高次元の判別が容易に視覚的に確認できる

     2
決定木のイメージ
                      ルートノード
    線形回帰




           ターミナルノード

3
分類の考え方



分類の考え方
       例えば、ある商品を購入するか否かを最も良く説明する分類を作成す
        るとする。この時、分類されたデータが買う、買わないできれいに分け
        られれば、それは「純粋である」とされる。
       分類により、純化していく作業が決定木




4
決定木の手法


       CART(Classification And Regression Trees)
           不純度を表すGINI係数を基準に分割
           ノードを分岐させることによって、不純度が減少する(=分岐
            後のそれぞれのノードの純度が増す)ような分岐点を探す
           「純度が増す」=「バラツキが少なくなる」


       C4.5(C5.0)
           エントロピーに基づくゲイン比という基準で分割



    5
木の構築コスト
       木の構造T、m番目のターミナルノード𝑅 𝑚 、 𝑅 𝑚 中の例題数
        𝑛𝑚
       𝑅 𝑚 において、ラベルがgになる確率
                                            1
                                𝑝   𝑚,𝑔 =           𝐼[𝑦 𝑖 = 𝑔]
                                            𝑛 𝑚
        𝑅 𝑚 におけるラベルの予測
                    𝑦(m) = argmax 𝑔 𝑝                        𝑚,𝑔

       Tにおけるノードmのコスト𝑄 𝑚 (𝑇)
        1.   ジニ係数      𝑄    𝑚       𝑇 =       𝑝   𝑚,𝑔   𝑝   𝑚,𝑔′   =   𝑝   𝑚,𝑔 (1   − 𝑝   𝑚,𝑔 )

                                              𝐺
        2.   エントロピー     𝑄   𝑚       𝑇 =       𝑔=1       𝑝   𝑚,𝑔 𝑙𝑜𝑔𝑝 𝑚,𝑔


    6
ジニ係数とエントロピー


       ジニ係数で分類
           不平等さを示す指標 0~1の間の値を取り、0で平等
           ジニ係数が最も低下するように分類する。


       エントロピーに基づくゲイン(情報利得)比
           情報量を測る指標(物理では熱や物質の拡散度を示す指標)
           情報量:確率pで起こる事象の情報量は -𝑙𝑜𝑔2 𝑝 で定義される
           𝑙𝑜𝑔2 𝑝の絶対値が大きい=情報量が多い
           エントロピー( - 𝐺 𝑝 𝑚,𝑔 𝑙𝑜𝑔𝑝 𝑚,𝑔 )が低いほどノードの純度は高い
                        𝑔=1




    7
ジニ係数とエントロピー:教科書の例
全体で200個の例題が存在、それぞれクラスが2つ

    分割1   𝑅1 にクラス1が75個、クラス2が25個
          𝑅2 にクラス1が75個、クラス2が25個

    分割2   𝑅1 にクラス1が50個、クラス2が100個
          𝑅2 にクラス1が50個、クラス2が0個
                100 75      75
ジニ係数      分割1           (1− ) ×2 = 0.1875
                200 100     100
                 150 50      50  50 50     50
          分割2            (1− ) +        (1− )   = 0.1666
                 200 150     150 200 50    50

                100 75        75
エントロピー    分割1           ×log( ) ×2 = -1.5
                200 100      100
                 150 50        50  50 50       50
          分割2            ×log( ) +        ×log( ) =   -0.3962
                 200 150      100  200 50      50

          注意:C4.5などはエントロピーに基づくゲイン(情報利得)比を用いる
8
決定木 in R
library(rpart) ; library(mlbench)
data(Glass)
nrow(Glass) # → 214
head(Glass) # 9つのデータと7つのType
table(Glass$Type) # 各Typeの個数

set.seed(1) # 乱数の種を指定
# 学習データ
tra.index <- sample(nrow(Glass), nrow(Glass)*0.7) # ランダムサンプリング

# ジニ係数で学習 split= “information” でエントロピー
res <- rpart(Type~., Glass[tra.index,], method=“class”, parms=list(split=“gini”))

pred <- predict(res,Glass,type=“class”) # ラベルの予測

mean(pred[tra.index]!=Glass$Type[tra.index]) # 訓練誤差 判別器を構成する際の学習データの誤り率
mean(pred[-tra.index]!=Glass$Type[-tra.index]) # 予測誤差 未知のデータに対する誤り率

# 決定木の表示
plot(res);text(res)

  9
木の剪定(pruning)
    木T’を構築した時、T⊂T’をT’を剪定することで得られる部分
     木(subtree)とする
                                   𝑀
    部分木Tのコスト          𝐶α (T) =    𝑚=1   𝑛   𝑚   𝑄 𝑚 (𝑇) + α 𝑇
                                  𝑇 :ターミナルノードの個数
                              α:剪定を制御するパラメータ
    学習データの適応度とαの大きさはトレードオフ
        𝐶0 (T)への寄与が小さなノードから順に剪定を行う
              → 𝐶α (T)を最小にする部分木𝑇α を探索する

    Rではαではなくオプションcpを用いる
          𝐶 𝑐𝑝 (T) = 𝐶0 (T) + cp 𝑇 𝐶0 (𝑇0 ), 0≦ c ≦ 1
    10
木の剪定と木の深さ


                          4




     学習データの適応度

ただし、実際にはcp≧2で1つだけの分岐となる

11
木の深さ=4




12
損失行列と事前確率
    クラスごとのサンプル数によって誤判別の重さが異なる

    >table(Glass$Type)                Glassのデータは左のようになっている。
    1 2 3 5 6 7                       ゆえに、サンプル数が少ないクラスである3,5,6
    70 76 17 13 9 29                  を誤判別するコストは小さい。

    [,1] [,2] [,3] [,4]   [,5] [,6]
[1,] 0 1 100 100          100 1
[2,] 1 0 100 100          100 1
                                      そこで、左図のような損失関数を導入し、3,5,6
[3,] 1 1 0 100            100 1
[4,] 1 1 100 0            100 1       の誤判別のコストを100倍にしてみる
[5,] 1 1 100 100            0 1
[6,] 1 1 100 100          100 0


0.1666667 0.1666667 …
                                      またパターン認識の本では一様分布を仮定した
                                      分析も合わせて行っている
    13
損失行列と事前確率 in R
library(rpart) ; library(mlbench)
data(Glass)
set.seed(1)
tra.index <- sample(nrow(Glass),nrow(Glass)*0.7)


# 損失行列
LOSS <- matrix(1,length(levels(Glass$Type)), length(levels(Glass$Type)))
LOSS[,c(3:5)] <- 100 ; diag(LOSS)<-0


# 学習
res2 <- rpart(Type~., Glass[tra.index,], method="class", parms=list(loss=LOSS))
yhat2 <- predict(res2,Glass,type=“class”) # ラベルの予測
mean(yhat2[tra.index]!=Glass$Type[tra.index]) # 訓練誤差
mean(yhat2[-tra.index]!=Glass$Type[-tra.index]) # 予測誤差
table(true=Glass$Type, prediction=yhat2) # 判別結果


# 一様分布の場合→parms=list(prior=rep(1/6,6)

  14
事前確率に一様分布を仮定した場合




15
決定木の不安定性




   決定木の問題点
        判別結果の分散が大きく、データが少し変わっただけで構築される
         木の構造や判別ルールが大きく変わってしまう。
        14章で扱うバギング等で木の安定性を測っている。




    16

Contenu connexe

Tendances

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習Hidekazu Tanaka
 
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法Kenichi Hironaka
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介Naoki Hayashi
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門Momoko Hayamizu
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用Ryo Iwaki
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)Takao Yamanaka
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化Yusuke Uchida
 
5分で分かる自己組織化マップ
5分で分かる自己組織化マップ5分で分かる自己組織化マップ
5分で分かる自己組織化マップDaisuke Takai
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明Satoshi Hara
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践智之 村上
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理Taiji Suzuki
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半Ohsawa Goodfellow
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法Ken'ichi Matsui
 

Tendances (20)

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
 
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM) 一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
 
BERT入門
BERT入門BERT入門
BERT入門
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
5分で分かる自己組織化マップ
5分で分かる自己組織化マップ5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
 

En vedette

はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-Naoki Yanai
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定Takashi Kaneda
 
SVMについて
SVMについてSVMについて
SVMについてmknh1122
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJOTakashi J OZAKI
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話Ryota Kamoshida
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Takeshi Mikami
 
Pythonで機械学習入門以前
Pythonで機械学習入門以前Pythonで機械学習入門以前
Pythonで機械学習入門以前Kimikazu Kato
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用nishio
 
30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティストSatoru Yamamoto
 
実戦投入する機械学習
実戦投入する機械学習実戦投入する機械学習
実戦投入する機械学習Takahiro Kubo
 

En vedette (20)

はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定
 
決定木学習
決定木学習決定木学習
決定木学習
 
SVMについて
SVMについてSVMについて
SVMについて
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJO
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」
 
Pythonで機械学習入門以前
Pythonで機械学習入門以前Pythonで機械学習入門以前
Pythonで機械学習入門以前
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト
 
実戦投入する機械学習
実戦投入する機械学習実戦投入する機械学習
実戦投入する機械学習
 

Similaire à パターン認識 第10章 決定木

カテゴリカルデータの解析 (Kashiwa.R#3)
カテゴリカルデータの解析 (Kashiwa.R#3)カテゴリカルデータの解析 (Kashiwa.R#3)
カテゴリカルデータの解析 (Kashiwa.R#3)Takumi Tsutaya
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JPSercan Ahi
 
How to study stat
How to study statHow to study stat
How to study statAk Ok
 
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能Hiroshi Nakagawa
 
20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則koba cky
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 ClusteringHiroshi Ono
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章Motokawa Tetsuya
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門Takeshi Arabiki
 
or-10. 線形計画法を Excel で解く
or-10. 線形計画法を Excel で解くor-10. 線形計画法を Excel で解く
or-10. 線形計画法を Excel で解くkunihikokaneko1
 
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...Takuya Shimada
 
Rで実験計画法 前編
Rで実験計画法 前編Rで実験計画法 前編
Rで実験計画法 前編itoyan110
 
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習Masanari Kimura
 
パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩t_ichioka_sg
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 

Similaire à パターン認識 第10章 決定木 (20)

カテゴリカルデータの解析 (Kashiwa.R#3)
カテゴリカルデータの解析 (Kashiwa.R#3)カテゴリカルデータの解析 (Kashiwa.R#3)
カテゴリカルデータの解析 (Kashiwa.R#3)
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
How to study stat
How to study statHow to study stat
How to study stat
 
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能
 
20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
 
Dive into XGBoost.pdf
Dive into XGBoost.pdfDive into XGBoost.pdf
Dive into XGBoost.pdf
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
わかりやすいパターン認識 4章
わかりやすいパターン認識 4章わかりやすいパターン認識 4章
わかりやすいパターン認識 4章
 
統計検定3級 4
統計検定3級 4統計検定3級 4
統計検定3級 4
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門
 
or-10. 線形計画法を Excel で解く
or-10. 線形計画法を Excel で解くor-10. 線形計画法を Excel で解く
or-10. 線形計画法を Excel で解く
 
PRML 第14章
PRML 第14章PRML 第14章
PRML 第14章
 
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...
[ICLR/ICML2019読み会] Data Interpolating Prediction: Alternative Interpretation ...
 
Rで実験計画法 前編
Rで実験計画法 前編Rで実験計画法 前編
Rで実験計画法 前編
 
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
[Ridge-i 論文読み会] ICLR2019における不完全ラベル学習
 
パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 

パターン認識 第10章 決定木

  • 1. 決定木 東京大学 三好雄也 1
  • 2. 決定木  決定木とは、データの特徴量を用いた簡単なルールで分岐を 作り、特徴空間を分割することを通じて判別や回帰を行うモ デルのこと  モデルの種類:CARTやC4.5(C5.0)  CART 1. 木の構築:何らかの基準を満たすまで、予め定義しておいたコストに基 づいて特徴空間を2分割する手続きを繰り返す 2. 剪定(pruning):構築された木の深さが深いほど複雑なデータを扱うこ とができるが、過学習の可能性がある。そこで、過学習を防ぐため、予 め定めておいたパラメータによってモデルの複雑度を制御すること  利点:高次元の判別が容易に視覚的に確認できる 2
  • 3. 決定木のイメージ ルートノード 線形回帰 ターミナルノード 3
  • 4. 分類の考え方 分類の考え方  例えば、ある商品を購入するか否かを最も良く説明する分類を作成す るとする。この時、分類されたデータが買う、買わないできれいに分け られれば、それは「純粋である」とされる。  分類により、純化していく作業が決定木 4
  • 5. 決定木の手法  CART(Classification And Regression Trees)  不純度を表すGINI係数を基準に分割  ノードを分岐させることによって、不純度が減少する(=分岐 後のそれぞれのノードの純度が増す)ような分岐点を探す  「純度が増す」=「バラツキが少なくなる」  C4.5(C5.0)  エントロピーに基づくゲイン比という基準で分割 5
  • 6. 木の構築コスト  木の構造T、m番目のターミナルノード𝑅 𝑚 、 𝑅 𝑚 中の例題数 𝑛𝑚  𝑅 𝑚 において、ラベルがgになる確率 1 𝑝 𝑚,𝑔 = 𝐼[𝑦 𝑖 = 𝑔] 𝑛 𝑚  𝑅 𝑚 におけるラベルの予測 𝑦(m) = argmax 𝑔 𝑝 𝑚,𝑔  Tにおけるノードmのコスト𝑄 𝑚 (𝑇) 1. ジニ係数 𝑄 𝑚 𝑇 = 𝑝 𝑚,𝑔 𝑝 𝑚,𝑔′ = 𝑝 𝑚,𝑔 (1 − 𝑝 𝑚,𝑔 ) 𝐺 2. エントロピー 𝑄 𝑚 𝑇 = 𝑔=1 𝑝 𝑚,𝑔 𝑙𝑜𝑔𝑝 𝑚,𝑔 6
  • 7. ジニ係数とエントロピー  ジニ係数で分類  不平等さを示す指標 0~1の間の値を取り、0で平等  ジニ係数が最も低下するように分類する。  エントロピーに基づくゲイン(情報利得)比  情報量を測る指標(物理では熱や物質の拡散度を示す指標)  情報量:確率pで起こる事象の情報量は -𝑙𝑜𝑔2 𝑝 で定義される  𝑙𝑜𝑔2 𝑝の絶対値が大きい=情報量が多い  エントロピー( - 𝐺 𝑝 𝑚,𝑔 𝑙𝑜𝑔𝑝 𝑚,𝑔 )が低いほどノードの純度は高い 𝑔=1 7
  • 8. ジニ係数とエントロピー:教科書の例 全体で200個の例題が存在、それぞれクラスが2つ 分割1 𝑅1 にクラス1が75個、クラス2が25個 𝑅2 にクラス1が75個、クラス2が25個 分割2 𝑅1 にクラス1が50個、クラス2が100個 𝑅2 にクラス1が50個、クラス2が0個 100 75 75 ジニ係数 分割1 (1− ) ×2 = 0.1875 200 100 100 150 50 50 50 50 50 分割2 (1− ) + (1− ) = 0.1666 200 150 150 200 50 50 100 75 75 エントロピー 分割1 ×log( ) ×2 = -1.5 200 100 100 150 50 50 50 50 50 分割2 ×log( ) + ×log( ) = -0.3962 200 150 100 200 50 50 注意:C4.5などはエントロピーに基づくゲイン(情報利得)比を用いる 8
  • 9. 決定木 in R library(rpart) ; library(mlbench) data(Glass) nrow(Glass) # → 214 head(Glass) # 9つのデータと7つのType table(Glass$Type) # 各Typeの個数 set.seed(1) # 乱数の種を指定 # 学習データ tra.index <- sample(nrow(Glass), nrow(Glass)*0.7) # ランダムサンプリング # ジニ係数で学習 split= “information” でエントロピー res <- rpart(Type~., Glass[tra.index,], method=“class”, parms=list(split=“gini”)) pred <- predict(res,Glass,type=“class”) # ラベルの予測 mean(pred[tra.index]!=Glass$Type[tra.index]) # 訓練誤差 判別器を構成する際の学習データの誤り率 mean(pred[-tra.index]!=Glass$Type[-tra.index]) # 予測誤差 未知のデータに対する誤り率 # 決定木の表示 plot(res);text(res) 9
  • 10. 木の剪定(pruning)  木T’を構築した時、T⊂T’をT’を剪定することで得られる部分 木(subtree)とする 𝑀  部分木Tのコスト 𝐶α (T) = 𝑚=1 𝑛 𝑚 𝑄 𝑚 (𝑇) + α 𝑇 𝑇 :ターミナルノードの個数 α:剪定を制御するパラメータ  学習データの適応度とαの大きさはトレードオフ  𝐶0 (T)への寄与が小さなノードから順に剪定を行う → 𝐶α (T)を最小にする部分木𝑇α を探索する  Rではαではなくオプションcpを用いる 𝐶 𝑐𝑝 (T) = 𝐶0 (T) + cp 𝑇 𝐶0 (𝑇0 ), 0≦ c ≦ 1 10
  • 11. 木の剪定と木の深さ 4 学習データの適応度 ただし、実際にはcp≧2で1つだけの分岐となる 11
  • 13. 損失行列と事前確率  クラスごとのサンプル数によって誤判別の重さが異なる >table(Glass$Type) Glassのデータは左のようになっている。 1 2 3 5 6 7 ゆえに、サンプル数が少ないクラスである3,5,6 70 76 17 13 9 29 を誤判別するコストは小さい。 [,1] [,2] [,3] [,4] [,5] [,6] [1,] 0 1 100 100 100 1 [2,] 1 0 100 100 100 1 そこで、左図のような損失関数を導入し、3,5,6 [3,] 1 1 0 100 100 1 [4,] 1 1 100 0 100 1 の誤判別のコストを100倍にしてみる [5,] 1 1 100 100 0 1 [6,] 1 1 100 100 100 0 0.1666667 0.1666667 … またパターン認識の本では一様分布を仮定した 分析も合わせて行っている 13
  • 14. 損失行列と事前確率 in R library(rpart) ; library(mlbench) data(Glass) set.seed(1) tra.index <- sample(nrow(Glass),nrow(Glass)*0.7) # 損失行列 LOSS <- matrix(1,length(levels(Glass$Type)), length(levels(Glass$Type))) LOSS[,c(3:5)] <- 100 ; diag(LOSS)<-0 # 学習 res2 <- rpart(Type~., Glass[tra.index,], method="class", parms=list(loss=LOSS)) yhat2 <- predict(res2,Glass,type=“class”) # ラベルの予測 mean(yhat2[tra.index]!=Glass$Type[tra.index]) # 訓練誤差 mean(yhat2[-tra.index]!=Glass$Type[-tra.index]) # 予測誤差 table(true=Glass$Type, prediction=yhat2) # 判別結果 # 一様分布の場合→parms=list(prior=rep(1/6,6) 14
  • 16. 決定木の不安定性  決定木の問題点  判別結果の分散が大きく、データが少し変わっただけで構築される 木の構造や判別ルールが大きく変わってしまう。  14章で扱うバギング等で木の安定性を測っている。 16