尾崎 隆
技術評論社
売り上げランキング: 141,877
技術評論社
売り上げランキング: 141,877
回帰木とは
- 前回までは、決定木を勉強してきた
- 決定木は、カテゴリ別の目的変数から、分類ルールを作るというものだった
- タイタニック号で、生存したかどうかという二値データ
- 顧客が再来店したかどうかという二値データ
- 一方で、目的変数が数値型になっているものを「回帰木」という
ここまでが本での解説。Wikipediaで「決定木」と調べると、このように書いてあった。
決定木には、他に2つの呼び名がある。おそらく、
・回帰木 (regression tree)
⇒分類に用いられるのではなく、実数値を取る関数の近似に用いられる。(例: 住宅の価格の見積り。患者の入院期間の見積り。)
・分類木 (classification tree)
⇒y が分類変数の場合。例えば、性別(男あるいは女)、試合の結果(勝ち、負け)
- 目的変数が数値データである場合は回帰木に
- 目的変数がカテゴリカルデータである場合が分類木
と呼ばれているんだと思う。
回帰木を実践する 花火大会の売り上げに貢献する変数を特定する
- 花火大会の売り上げデータをダウンロードし、インポートする
- データセットは以下の通り
- Revenue:うりあげ
- CM:CMの実施回数
- Temp:気温
- Firework:近隣の花火大会実施数
> d3 <- read.csv("C:/workspace/R/DM_sampledata/ch4_3_2.txt", sep="") > View(d3) > head(d3) Revenue CM Temp Firework 1 47.14347 141 31 2 2 36.92363 144 23 1 3 38.92102 155 32 0 4 40.46434 130 28 0 5 51.60783 161 37 0 6 32.87875 154 27 0
これで回帰木を作る。決定木を実行するには、rpart関数を用いる。目的変数が連続値であれば、自動的に回帰木として扱われる。同様に、目的変数がカテゴリ値ならば分類木として扱われる。
> d3.rp <- rpart(Revenue ~ ., d3) > rpart.plot(d3.rp,uniform=T) > plot(d3.rp, uniform=T,margin=2) > text(d3.rp,uniform=T,use.n=T,all=F)
本来であればこういう図が出るはずなんだけど
なんか枝が少ないし、小さいしキモイ。見にくい。
なので、少しコードを変えてやってみる。
> install.packages("partykit") > library(partykit) > plot(as.party(d3.rp))
ほうほう、うまくいったのと、各nodeによって箱ひげ図で可視化されるので、かなり面白い。ちゃんと分散も可視化されるので、よいね。
- その年の平均気温が27.5度未満だと、平均売上が一番低くなる
- その年の平均気温が27.5度以上で、かつ近隣の花火大会の実施数が1回以上あるときの平均売り上げが一番高くなる
少なくとも回帰木でこういうことがわかるから、チェーン店だったら、どこに出店するかとかの意思決定をしやすいね。面白い。
尾崎 隆
技術評論社
売り上げランキング: 141,877
技術評論社
売り上げランキング: 141,877
次はついにランダムフォレスト!