ISLR: Chapter 8 Tree-Based Methods
8.1 The Basics of Decision Trees
8.1.1 Regression Trees
Predicting Baseball Players' Salaries Using Regression Trees
Prediction via Stratification of the Feature Space
regression treeの構築方法は以下の2ステップ.
説明変数を,重複がないように個の領域に切り分ける.
全てのについて,観測がに属する場合は,に属する訓練データの平均値を予測値として返す.
どうやってを見つけるかが問題だが,残差二乗和が最小になるようにする. ここで,はに属する訓練データの平均値,要するに決定木による予測値を表す.もう少し具体的に言うと,となるを見つけなければならないが,それを残差二乗和が最小になるように決めるということ.つまり,下式を最小化するようなを求める. で,終了条件を満たすまでこれを繰り返していくと分岐がどんどん増える.
Tree Pruning
ところが上の方法でできる決定木は複雑過ぎるので過学習になりやすい.そこで,バイアスを少し大きくする代わりに,より分散が小さく,かつ解釈しやすい木が欲しい.
では,どうやるのか?一度巨大な木を作って,そこから部分木を刈り取っていく.Cost complexity pruningもしくはweakest link pruningと呼ばれる効率的な刈り取り方がある.これは以下の式を最小化する. はterminal nodesの総数.部分木の数が増えるとの項が最小化において効いてくるので,結果的に小さくなる.はvalidation setもしくはcross-validationで決める.詳細は以下のアルゴリズムの通り.
各terminal nodeの中の観測の個数が一定数以下になるまで領域に分割する.
の関数としてcost complexity pruningを適用する.
K-fold cross-validationを行う.For each
Step 3で求まったをStep 2で求めた関数に代入し,部分木を返す.
8.1.2 Classification Trees
予測として返すのは,その領域に含まれている観測の中で最も属する観測が多いクラス.Regression Treesでは残差二乗和を使ってたが,Classfication Treesではそれに対応する概念として,classification error rate を用いて定義されるジニ係数がある. ここで,はに含まれる観測におけるクラスの比率.したがって,で求まるのは,で最も出現しているクラスに属していない観測の割合ということになる.また,ジニ係数は以下のように定義される. 結局これは個のクラスについて分散を求めており,が0か1に近ければジニ係数は非常に小さくなるので,node purityを測るのに使われる.ジニ係数が小さければ,領域内でのクラスのばらつきの少ない木ということになる.また,ジニ係数の代わりとしてクロス・エントロピーもある. というのはであるので,クロス・エントロピーはジニ係数と同様の尺度として扱える.そういうわけで,ジニ係数とクロス・エントロピーはclassification error rateよりもnode purityに強く反応するので,pruningする際に使われる.classification error rateはprediction accuracyを重視する時はジニ係数やクロス・エントロピーよりも良い指標になる.
8.1.3 Trees Versus Linear Models
線形回帰は であるのに対し,regression treeは という形を取るので,かなり違う.というわけで気になるのはどちらが優れているのか.問題が線形に近いなら線形回帰の方が良いし,そうでないならregression treeの方が良い場合が多い.とは言えどのくらいモデルを解釈したいか,可視化したいかというのも手法選択の規準になりうるので,目的に合わせて自分で選べという感じ.
8.1.4 Advantages and Disadvantages of Trees
- メリット
- 決定木の方が線形回帰よりも人に説明しやすい.
- 決定木による分類は,これまでの章で扱ってきた手法よりも人の意思決定に近いと信じる人もいる(なんのこっちゃ)
- 可視化が楽なので専門家でなくても解釈しやすい
- 質的データに対してわざわざダミー変数を作らなくても木を構築できるため,他の手法よりも質的な説明変数を扱いやすい
- デメリット
- 決定木は他の手法よりも予測精度が悪い
- 決定木はrobustじゃない.つまり,データが変われば簡単に木構造が変わってしまう.
ただし,Bagging, Random Forests, Boostingを使えば予測精度は上がる.
8.2 Bagging, Random Forests, Boosting
8.2.1 Bagging
決定木は分散が大きいのでつらい.そこでbootstrapを応用したBaggingを考える.bootstrapは欲しい量の標準偏差を直接求めることが困難な場合に使われる.具体的には,それぞれの分散がであるようなn個の観測集合を平均すると,平均した観測集合の分散がになり,結果的にデータセットの分散が小さくなってハッピー,だからなるべく母集団からたくさんの観測をサンプルしようという話でした.
Baggingは,bootstrapでたくさんデータセットを生成し,それらを用いてを求め,平均する.つまり, もちろんBaggingは他の手法にも適用可能だが,決定木には特に有効.というのもそれぞれの決定木はhigh variance, low biasだが,それらを平均すると分散が小さくなるから.分類問題に対しては,それぞれの決定木で予測し,その結果の中で最も多かった予測値を採用するという方法で対応可能.
Out-of-Bag Error Estimation
Variable Importance Measures
8.2.2 Random Forests
Baggingとほぼ同じ.違いは,Baggingでは各ブートストラップサンプルに対し全ての変数を用いて決定木を構築していたのに対し,Random Forestsでは各ブートストラップサンプルに対しランダムに選択された(とすることが多いらしい)個の変数を使って決定木をサンプルの個数分作る.Baggingと比べて変数の数が少ないので,結果的に,各木の分散が小さくなって良い.
8.2.3 Boosting
BaggingやRandom Forestsのようなもの,これらは並列計算できるが,Boostingはその前のモデルに依存して新しいモデルが作られるので並列計算不可.また,Boostingは他の手法にも適用可能.パラメタとしては(よく使われるのは0.01もしくは0.001),サンプル数(が大きければも大きい必要があるが,過学習しやすくなる),各木の分割数の3種類.最適なはクロス・バリデーションで決める.