1

我正在尝试使用 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 

我认为它只有一个节点?谁能指出我正确的方向?

4

0 回答 0