R:将rpart回归树结果应用于其他数据

时间:2017-01-16 11:18:17

标签: r tree rpart

将Rpart()函数应用于R中的数据集后,使用:

print(R_Part_Train_Output)

我最终得到了这些结果:

 1) root 3678351 1121767000 30.46863  
   2) Var1>=4.5 2889077  732026500 26.62383  
     4) Var2=E Europe,Eur Union,Irish Rep,Oth 1097632  163740000 19.31832  
       8) Var3< 133.5 495297   30775570 16.70123 *
       9) Var3>=133.5 602335  126782600 21.47033 *  
     5) Var2=Africa,Aus NZ,Car, L Am,E Asia,M East C Asia,N America,S Asia 1791445  473812200 31.09997  
       10) Var3< 180.5 1042740  128509300 27.32818  
         20) Var3 < 110.5 410147   27371200 24.29461 *   
         21) Var3>=110.5 632593   94916560 29.29503 *  
       11) Var3>=180.5 748705  309808200 36.35303  
         22) Var4=B 99523   20792900 29.26750 *  
         23) Var4=A 649182  283252800 37.43929 *  
   3) Var1< 4.5 789274  190704300 44.54223  
     6) Var3< 168.5 374571   50560270 40.89094 *  
     7) Var3>=168.5 414703  130639800 47.84017 *

有没有办法将此回归树分割应用于除用于创建树本身的数据集之外的数据集。 我当然可以手动将这些数据分成这些部分,但是由于大量的观察结果,构建代码并应用它会很麻烦。内置函数会简单得多。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用预测。见?predict.rpart

library(rpart)
TreeModel = rpart(Petal.Width ~ ., iris[,1:4])
TreeModel
n= 150 
node), split, n, deviance, yval
      * denotes terminal node
 1) root 150 86.5699300 1.199333  
   2) Petal.Length< 2.45 50  0.5442000 0.246000 *
   3) Petal.Length>=2.45 100 17.8624000 1.676000  
     6) Petal.Length< 4.75 45  1.5200000 1.300000 *
     7) Petal.Length>=4.75 55  4.7752730 1.983636  
      14) Petal.Length< 5.05 13  0.4676923 1.730769 *
      15) Petal.Length>=5.05 42  3.2190480 2.061905 *

NewPoint = data.frame(Sepal.Length = 4.5, Sepal.Width=3.3, Petal.Length=0.2)
predict(TreeModel, NewPoint)
    1 
0.246