使用mvpart做多元回归树

分类: R语言与数理统计 |
Creating Multivariate Regression Trees (MRT) using R-package
1:模块安装
install_url("https://cran.r-project.org/src/contrib/Archive/mvpart/mvpart_0.1-1.tar.gz")
2: 多元回归树(Multivariate Regression Trees)是单变量回归树的推广,是用来对一系列数量变量递归划分成多个类群的一种方法,其划分的依据为这一系列变量所对应的数量或者分等级的解释变量。
3: 误差的计算通常基于交叉验证等方法 ,即用一部分训练样本建立模型 ,而剩下的样本用来作验证看模型的预测误差大小。将数据随机划分成k组(默认为xval=10)。随机保留其中一组作为“验证组”(test groups),利用条件限制分类,按照组内平方和最小的原则,选取一棵最优的回归树。
4: 选择树的方法一般有两种,一种是最小化交叉验证的相对方差(xerror),防止过度拟合,而使模型的误差过大。另外一种是在剪枝理论中,比较著名的规则就是1-SE(1标准差) 规则,拟合得使分组后的变异较小。
cp: complexity pamemeter控制每个节点上的最小样本量、交叉验证的次数、复杂性参量。 这个参数意味着对每一步拆分, 模型的拟合优度必须提高的程度, 等等。其意思是 :首先要保证预测误差 (通过交叉验证获得 ,在程序中表示为 xerror) 尽量小 ,但 不一定要取最小值 ,而是允许它在“最小的误差 ±一个相应标准差”的范围内 ,然后在此范围内选取尽量小的复杂性参量 ,进而以它为依据进行剪枝。这个 规则体现了兼顾树的规模 (复杂性) 和误差大小的思想 ,因为一般说来,随着拆分的增多,复杂性参量会单调下降 (纯度越来越高) ,但是预测误差则会先降后升,这样就无法使复杂性和误差同时降到最低 , 因此允许误差可以在一个标准差内波动。
5: 实例:
library(mvpart)
data(spider)
mvpart(data.matrix(spider[,1:12])~herbs+reft+moss+sand+twigs+water,spider)
fit <- mvpart(data.matrix(spider[,1:12])~herbs+reft+moss+sand+twigs+water,spider,xv="1se",pca=TRUE)
rpart.pca(fit,interact=TRUE,wgt.ave=TRUE)


参考链接:
1:http://blog.sciencenet.cn/blog-255662-417115.html
http://blog.sina.com.cn/s/blog_6fb7db430100veen.html
3:2007-基于 R 软件 rpart 包的分类与回归树应用 (谢益辉)