モデル木 のRによる実施例です。
setwd("C:/Rtest") # 作業用ディレクトリを変更
library(Cubist)# ライブラリを読み込み
library(ggplot2) # ライブラリを読み込み
Data <- read.csv("Data.csv", header=T) # データを読み込み
Ydata <- Data$Y# Yのデータを抜き出す
Data$Y<-NULL# Yの列を消す
Cu <- cubist(y = Ydata, x=Data, data = Data)# モデルを作る
summary(Cu)# 結果(モデル)の出力
Output <- predict(Cu,Data)# 予測値を計算
Data2 <- cbind(Data, Output)
ggplot(Data2, aes(x=Y, y=Output)) + geom_point()+xlab("Data Y")+ylab("Predicted Y")+ggtitle("Model Tree (Cubist)")# 予測値と元データのYの関係
上記のcubistはデフォルトです。
例えば、作られるルールを3つまでで止めたい場合は、下記になります。
Cu <- cubist(y = Ydata, x=Data, data = Data, control=cubistControl(rules = 3))
CRANのCubist
Cubistのマニュアルです。
https://cran.r-project.org/web/packages/Cubist/Cubist.pdf
線形回帰モデルとモデル木の比較
線形回帰と、Cubistのモデル木の比較があります。
https://k-metrics.netlify.app/post/2019-11/cubist/