2

我正在训练决策树 C5.0,一切运行良好,直到我尝试预测测试数据集中的值。我不确定错误是什么意思:

library(pacman)
p_load(tidyverse, NHANES, C50)

rows <- sample(nrow(NHANES), as.integer(0.75 * nrow(NHANES)))

nhanes_train <- NHANES[rows,] %>%
  select(SleepTrouble, everything(), -ID)
nhanes_test <- NHANES[-rows,] %>%
  select(SleepTrouble, everything(), -ID)

nhanes_tree <- C5.0(nhanes_train[-1], nhanes_train$SleepTrouble)

nhanes_tree_pred <- predict(nhanes_tree, nhanes_test)

输出:

错误: *** undefined.cases 的第 1 行:c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,' 对于属性 `SurveyYr' 超出错误限制

4

1 回答 1

3

看来,当你有因子等非数字数据时,你必须使用函数的公式版本。这工作正常:

nhanes_tree <- C5.0(SleepTrouble ~ ., nhanes_train)
nhanes_tree_pred <- predict(nhanes_tree, nhanes_test)

从文档中:

当使用公式方法时,因子和其他类被保留(即虚拟变量不会自动创建)。此特定模型处理某些类型的非数字数据(例如字符、因子和有序数据)。

于 2020-02-28T07:19:10.823 回答