1|—— rpart函数 shuttle数据集
数据集:
分类问题: stability error sign wind magn vis use1 xstab LX pp head Light no auto2 xstab LX pp head Medium no auto3 xstab LX pp head Strong no auto4 xstab LX pp tail Light no auto...256
代码:
1 library(MASS)2 shuttle#加载shuttle数据集3 m=256;set.seed(2)4 5 samp = sample(1:m,floor(m/10))#测试样本6 tsamp = setdiff(1:m,samp) #训练样本
绘图:
1 library(rpart.plot)2 (b=rpart(use~.,shuttle,subset=tsamp))#数据加入模型3 plot(b);text(b,use.n=T)4 rpart.plot(b,type=2)#另一种绘图方式
rpart.plot(b,type=1) rpart.plot(b,type=2)
分类的效果还是不错的,but这是数据洗的好啊...
1 #预测2 predict(b, shuttle[samp,],type="prob") # 返回每个样本被预测为各类别的概率3 predict(b, shuttle[samp,],type="vector") # 以各类别的水平值显示各样本的预测结果4 predict(b, shuttle[samp,],type="class") # 以各类别名称显示各样本的预测结果5 predict(b, shuttle[samp,],type="matrix") # 以矩阵形式综合输出"以类别水平值表示的预测结果"、"类别频率"、"预测概率"
outcome:
1 [,1] [,2] [,3] [,4] [,5] [,6] 2 48 1 115 0 1.00000000 0.0000000 0.49783550 3 180 2 4 82 0.04651163 0.9534884 0.37229437 4 146 2 4 82 0.04651163 0.9534884 0.37229437 5 43 1 115 0 1.00000000 0.0000000 0.49783550 6 238 2 4 82 0.04651163 0.9534884 0.37229437 7 237 2 0 14 0.00000000 1.0000000 0.06060606 8 33 1 115 0 1.00000000 0.0000000 0.49783550 9 208 2 4 82 0.04651163 0.9534884 0.3722943710 117 1 115 0 1.00000000 0.0000000 0.4978355011 136 2 4 82 0.04651163 0.9534884 0.3722943712 247 2 4 82 0.04651163 0.9534884 0.3722943713 59 1 115 0 1.00000000 0.0000000 0.4978355014 ...
t(table(predict(b,shuttle[tsamp,],type="class"),shuttle[tsamp,7])) # 对tsamp进行样本内预测,并输出混淆矩阵;t()为转置函数,可以不用t(table(predict(b,shuttle[samp,],type="class"),shuttle[samp,7])) # 对samp进行样本外预测,并输出混淆矩阵;
OUTCOME:
_ tsamp集合 _samp集合