【问题标题】:rpart summary: missing variables in plotrpart 摘要:图中缺少变量
【发布时间】:2021-08-04 10:33:27
【问题描述】:

我有一个包含 9 个特征的数据集,从 x1x9。目标变量是Target(我有一个分类问题)。代码:

# Splitting the dataset into the Training set and Test set
# install.packages('caTools')
library(caTools)
set.seed(123)
split = sample.split(dataset$Target, SplitRatio = 0.75)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)

training_set[-c(2,5)] = scale(training_set[-c(2,5)])
test_set[-c(2,5)] = scale(test_set[-c(2,5)])


# Fitting Decision Tree Classification to the Training set
# install.packages('rpart')
library(rpart)
classifier = rpart(formula = Target ~ .,
                   data = training_set)

# Predicting the Test set results
y_pred = predict(classifier, newdata = test_set[-2], type = 'class')

# Making the Confusion Matrix
cm = table(test_set[, 2], y_pred)

plot(classifier, uniform=TRUE,margin=0.2)
text(classifier)

产生:

无论如何,我看到了 7 个按重要性排序的变量。第一个问题是:为什么只有 7 个(他们是 9 个)?

summary(classifier)


Variable importance
x7 x6 x4 x1 x3 x2 x5 
27 18 17 14 11  9  4

此外(这是第二个问题)x3 在情节中丢失。为什么?

数据集太大,我想我不能放在这里,但我想知道你是否发生过类似的事情,你是否找到了任何可能的解释。

谢谢!

【问题讨论】:

  • 如果没有更多关于 dataset 结构的详细信息,将很难给出具体答案:因子、连续变量、...

标签: r decision-tree rpart


【解决方案1】:

这是由于rpart 算法中的树构建过程。请参阅here 以获得带有一些真实案例研究示例的深入解释。但是,树是通过以下过程构建的:首先,找到“最佳”的单个变量 将数据分成两组。数据被分离,然后此过程单独应用于每个子组,以此类推,直到子组达到最小大小或无法改进。所以这意味着一些变量可以从最终模型中排除。

此外,

summary 函数的 cp 选项指示它修剪打印输出,但它不修剪树。对于每个节点,最多将打印 5 个代理拆分(默认),但只有那些效用大于基线“与大多数人一起”代理的那些。

我认为这可以解释缺少的 x3 预测器

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2018-06-16
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多