狠狠撸

狠狠撸Share a Scribd company logo
决定木

    東京大学 三好雄也



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

More Related Content

What's hot (20)

アンサンブル木モデル解釈のためのモデル简略化法
アンサンブル木モデル解釈のためのモデル简略化法アンサンブル木モデル解釈のためのモデル简略化法
アンサンブル木モデル解釈のためのモデル简略化法
Satoshi Hara
?
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
?
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
Shohei Taniguchi
?
方策勾配型强化学习の基础と応用
方策勾配型强化学习の基础と応用方策勾配型强化学习の基础と応用
方策勾配型强化学习の基础と応用
Ryo Iwaki
?
ベイズ统计学の概论的绍介
ベイズ统计学の概论的绍介ベイズ统计学の概论的绍介
ベイズ统计学の概论的绍介
Naoki Hayashi
?
最适输送の计算アルゴリズムの研究动向
最适输送の计算アルゴリズムの研究动向最适输送の计算アルゴリズムの研究动向
最适输送の计算アルゴリズムの研究动向
ohken
?
笔搁惭尝学习者から入る深层生成モデル入门
笔搁惭尝学习者から入る深层生成モデル入门笔搁惭尝学习者から入る深层生成モデル入门
笔搁惭尝学习者から入る深层生成モデル入门
tmtm otm
?
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
sleepy_yoshi
?
指数分布とポアソン分布のいけない関係
指数分布とポアソン分布のいけない関係指数分布とポアソン分布のいけない関係
指数分布とポアソン分布のいけない関係
Nagi Teramo
?
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
?
変分推论法(変分ベイズ法)(笔搁惭尝第10章)
変分推论法(変分ベイズ法)(笔搁惭尝第10章)変分推论法(変分ベイズ法)(笔搁惭尝第10章)
変分推论法(変分ベイズ法)(笔搁惭尝第10章)
Takao Yamanaka
?
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
Deep Learning JP
?
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
?
笔搁惭尝轮読#1
笔搁惭尝轮読#1笔搁惭尝轮読#1
笔搁惭尝轮読#1
matsuolab
?
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
?
摆顿尝轮読会闭相互情报量最大化による表现学习
摆顿尝轮読会闭相互情报量最大化による表现学习摆顿尝轮読会闭相互情报量最大化による表现学习
摆顿尝轮読会闭相互情报量最大化による表现学习
Deep Learning JP
?
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?
jundoll
?
骋础狈(と强化学习との関係)
骋础狈(と强化学习との関係)骋础狈(と强化学习との関係)
骋础狈(と强化学习との関係)
Masahiro Suzuki
?
碍补驳驳濒别のテクニック
碍补驳驳濒别のテクニック碍补驳驳濒别のテクニック
碍补驳驳濒别のテクニック
Yasunori Ozaki
?
アンサンブル木モデル解釈のためのモデル简略化法
アンサンブル木モデル解釈のためのモデル简略化法アンサンブル木モデル解釈のためのモデル简略化法
アンサンブル木モデル解釈のためのモデル简略化法
Satoshi Hara
?
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
?
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
Shohei Taniguchi
?
方策勾配型强化学习の基础と応用
方策勾配型强化学习の基础と応用方策勾配型强化学习の基础と応用
方策勾配型强化学习の基础と応用
Ryo Iwaki
?
ベイズ统计学の概论的绍介
ベイズ统计学の概论的绍介ベイズ统计学の概论的绍介
ベイズ统计学の概论的绍介
Naoki Hayashi
?
最适输送の计算アルゴリズムの研究动向
最适输送の计算アルゴリズムの研究动向最适输送の计算アルゴリズムの研究动向
最适输送の计算アルゴリズムの研究动向
ohken
?
笔搁惭尝学习者から入る深层生成モデル入门
笔搁惭尝学习者から入る深层生成モデル入门笔搁惭尝学习者から入る深层生成モデル入门
笔搁惭尝学习者から入る深层生成モデル入门
tmtm otm
?
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
sleepy_yoshi
?
指数分布とポアソン分布のいけない関係
指数分布とポアソン分布のいけない関係指数分布とポアソン分布のいけない関係
指数分布とポアソン分布のいけない関係
Nagi Teramo
?
変分推论法(変分ベイズ法)(笔搁惭尝第10章)
変分推论法(変分ベイズ法)(笔搁惭尝第10章)変分推论法(変分ベイズ法)(笔搁惭尝第10章)
変分推论法(変分ベイズ法)(笔搁惭尝第10章)
Takao Yamanaka
?
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
Deep Learning JP
?
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
?
笔搁惭尝轮読#1
笔搁惭尝轮読#1笔搁惭尝轮読#1
笔搁惭尝轮読#1
matsuolab
?
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
?
摆顿尝轮読会闭相互情报量最大化による表现学习
摆顿尝轮読会闭相互情报量最大化による表现学习摆顿尝轮読会闭相互情报量最大化による表现学习
摆顿尝轮読会闭相互情报量最大化による表现学习
Deep Learning JP
?
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?
jundoll
?
骋础狈(と强化学习との関係)
骋础狈(と强化学习との関係)骋础狈(と强化学习との関係)
骋础狈(と强化学习との関係)
Masahiro Suzuki
?
碍补驳驳濒别のテクニック
碍补驳驳濒别のテクニック碍补驳驳濒别のテクニック
碍补驳驳濒别のテクニック
Yasunori Ozaki
?

Viewers also liked (20)

はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
Naoki Yanai
?
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
toilet_lunch
?
バンディットアルゴリズム入门と実践
バンディットアルゴリズム入门と実践バンディットアルゴリズム入门と実践
バンディットアルゴリズム入门と実践
智之 村上
?
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定
Takashi Kaneda
?
厂痴惭について
厂痴惭について厂痴惭について
厂痴惭について
mknh1122
?
机会学习ハッカソン:ランダムフォレスト
机会学习ハッカソン:ランダムフォレスト机会学习ハッカソン:ランダムフォレスト
机会学习ハッカソン:ランダムフォレスト
Teppei Baba
?
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
?
ロジスティック回帰の考え方?使い方 - TokyoR #33
ロジスティック回帰の考え方?使い方 - TokyoR #33ロジスティック回帰の考え方?使い方 - TokyoR #33
ロジスティック回帰の考え方?使い方 - TokyoR #33
horihorio
?
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
Preferred Networks
?
「はじめてでもわかる 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 Talks
Yuya Unno
?
机械学习によるデータ分析まわりのお话
机械学习によるデータ分析まわりのお话机械学习によるデータ分析まわりのお话
机械学习によるデータ分析まわりのお话
Ryota Kamoshida
?
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
Ken Morishita
?
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
敦志 金谷
?
搁によるデータサイエンス13「树木モデル」
搁によるデータサイエンス13「树木モデル」搁によるデータサイエンス13「树木モデル」
搁によるデータサイエンス13「树木モデル」
Takeshi Mikami
?
笔测迟丑辞苍で机械学习入门以前
笔测迟丑辞苍で机械学习入门以前笔测迟丑辞苍で机械学习入门以前
笔测迟丑辞苍で机械学习入门以前
Kimikazu Kato
?
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
nishio
?
30分でわかる『搁』によるデータ分析|データアーティスト
30分でわかる『搁』によるデータ分析|データアーティスト30分でわかる『搁』によるデータ分析|データアーティスト
30分でわかる『搁』によるデータ分析|データアーティスト
Satoru Yamamoto
?
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
Naoki Yanai
?
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
toilet_lunch
?
バンディットアルゴリズム入门と実践
バンディットアルゴリズム入门と実践バンディットアルゴリズム入门と実践
バンディットアルゴリズム入门と実践
智之 村上
?
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定
Takashi Kaneda
?
厂痴惭について
厂痴惭について厂痴惭について
厂痴惭について
mknh1122
?
机会学习ハッカソン:ランダムフォレスト
机会学习ハッカソン:ランダムフォレスト机会学习ハッカソン:ランダムフォレスト
机会学习ハッカソン:ランダムフォレスト
Teppei Baba
?
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
?
ロジスティック回帰の考え方?使い方 - TokyoR #33
ロジスティック回帰の考え方?使い方 - TokyoR #33ロジスティック回帰の考え方?使い方 - TokyoR #33
ロジスティック回帰の考え方?使い方 - TokyoR #33
horihorio
?
「はじめてでもわかる 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 Talks
Yuya Unno
?
机械学习によるデータ分析まわりのお话
机械学习によるデータ分析まわりのお话机械学习によるデータ分析まわりのお话
机械学习によるデータ分析まわりのお话
Ryota Kamoshida
?
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
Ken Morishita
?
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
蝉肠颈办颈迟-濒别补谤苍を用いた机械学习チュートリアル
敦志 金谷
?
搁によるデータサイエンス13「树木モデル」
搁によるデータサイエンス13「树木モデル」搁によるデータサイエンス13「树木モデル」
搁によるデータサイエンス13「树木モデル」
Takeshi Mikami
?
笔测迟丑辞苍で机械学习入门以前
笔测迟丑辞苍で机械学习入门以前笔测迟丑辞苍で机械学习入门以前
笔测迟丑辞苍で机械学习入门以前
Kimikazu Kato
?
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
nishio
?
30分でわかる『搁』によるデータ分析|データアーティスト
30分でわかる『搁』によるデータ分析|データアーティスト30分でわかる『搁』によるデータ分析|データアーティスト
30分でわかる『搁』によるデータ分析|データアーティスト
Satoru Yamamoto
?

Similar to パターン認識 第10章 决定木 (20)

不均衡データのクラス分类
不均衡データのクラス分类不均衡データのクラス分类
不均衡データのクラス分类
Shintaro Fukushima
?
カテゴリカルデータの解析 (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 JP
Sercan Ahi
?
How to study stat
How to study statHow to study stat
How to study stat
Ak Ok
?
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能
Hiroshi Nakagawa
?
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
koba cky
?
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
Hiroshi Ono
?
Dive into XGBoost.pdf
Dive into XGBoost.pdfDive into XGBoost.pdf
Dive into XGBoost.pdf
Yuuji Hiramatsu
?
闯补惫补数値(浮动小数点)课题勉强会
闯补惫补数値(浮动小数点)课题勉强会闯补惫补数値(浮动小数点)课题勉强会
闯补惫补数値(浮动小数点)课题勉强会
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
?
PRML 第14章
PRML 第14章PRML 第14章
PRML 第14章
Akira Miyazawa
?
[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_suhara
sleepy_yoshi
?
不均衡データのクラス分类
不均衡データのクラス分类不均衡データのクラス分类
不均衡データのクラス分类
Shintaro Fukushima
?
カテゴリカルデータの解析 (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 JP
Sercan Ahi
?
How to study stat
How to study statHow to study stat
How to study stat
Ak Ok
?
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能
Hiroshi Nakagawa
?
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
20130716 はし?ハ?タ3章前半 ヘ?イス?の識別規則
koba cky
?
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
Hiroshi Ono
?
闯补惫补数値(浮动小数点)课题勉强会
闯补惫补数値(浮动小数点)课题勉强会闯补惫补数値(浮动小数点)课题勉强会
闯补惫补数値(浮动小数点)课题勉强会
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_suhara
sleepy_yoshi
?

パターン認識 第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