我正在尝试使用rpart包在R中构建分类树。 我的数据有10个预测变量(其中4个是分类变量,另外6个是数字变量)。
我的数据样本:
> str(rdiabetes)
'data.frame': 559 obs. of 12 variables:
$ A1c : num 5.6 5.1 5.6 5.7 6.5 6.4 5.3 5.6 6.2 5.7 ...
$ BP : Factor w/ 4 levels "Hypertension",..: 3 1 4 1 3 1 2 3 3 1 ...
$ BMI : Factor w/ 4 levels "Normal","Obese",..: 2 1 3 3 3 2 3 2 3 2 ...
$ Age : int 60 88 76 93 62 80 64 55 57 71 ...
$ Presc : int 71 6 0 28 28 39 16 0 0 10 ...
$ Claims : int 71 36 109 52 39 44 42 42 39 11 ...
$ Months : int 12 11 12 12 12 11 12 12 12 12 ...
$ Gender : Factor w/ 2 levels "F","M": 1 1 2 1 1 1 2 2 1 1 ...
$ Comorbidities: Factor w/ 76 levels "10 or More Dominant Chronic Diseases ",..: 5 13 14 14 14 14 14 14 14 17 ...
$ Monthly.Spend: num 4515 3709 3356 3525 1977 ...
$ Status2 : Factor w/ 2 levels "Disenrolled",..: 2 1 2 2 2 2 2 2 2 2 ...
这是我的代码:
#import libraries
library(rpart)
#import dataset
rdiabetes <- read.csv("~/rdiabetes.csv")
set.seed(101)
alpha <- 0.7 # percentage of training set
inTrain <- sample(1:nrow(rdiabetes), alpha * nrow(rdiabetes))
train.set <- rdiabetes[inTrain,]
test.set <- rdiabetes[-inTrain,]
fit <- rpart(Status2 ~ A1c + BP + BMI + Age + Presc + Claims + Months + Gender + Comorbidities + Monthly.Spend, data=train.set)
printcp(fit)
这些是我的结果:
> printcp(fit)
Classification tree:
rpart(formula = Status2 ~ A1c + BP + BMI + Age + Presc + Claims +
Months + Gender + Comorbidities + Monthly.Spend, data = train.set)
Variables actually used in tree construction:
character(0)
Root node error: 6/391 = 0.015345
n= 391
CP nsplit rel error xerror xstd
1 0 0 1 0 0
我感到困惑的是:树构造中实际使用的变量: 字符(0) 这是什么意思?如何在树构造中不使用任何变量?
我尝试使用摘要功能在聚会包中构建树:
> summary(rdiabetes_ctree)
Length Class Mode
1 BinaryTree S4
我认为它只有一个节点?有人能指出我正确的方向吗?