0

我使用 rpart 制作了一个分类树。数据有 10 列,均已正确标记。其中五列包含信息,例如“星期三”形式的星期几,其他五列包含数值。

我可以使用 Rpart 成功制作一棵树,但是当我尝试运行数据的测试集,甚至是制作树的训练集时,我收到一堆警告,说包含字符的变量已更改为一个因子,然后出现一个错误,指出这些相同的变量被指定为与拟合不同的类型。

有人知道怎么修这个东西吗?

我的相关代码应该是

library(rpart)
#read data into info
info <- data.frame(info)
set.seed(30198)
train_ind <- sample(1:2000, 1500)
training_data_info <- info[train_ind, ]
test_data_info <- info[-train_ind, ]
training_data_info <- data.frame(training_data_info)
test_data_info <- data.frame(test_data_info)
tree <- rpart(info ~ ., data = training_data_info, method = "class")
info.test.fit <- predict(tree, newdata=test_data_info) #this is where it goes wrong
4

1 回答 1

1

您不能在rpart合适的情况下使用字符向量。您必须将它们编码为因子。该代码为您执行此操作,但随后您遇到了一个问题,即测试数据完全有可能与levels用于拟合树的训练数据具有不同的集合。

错误源于使用这两行:

training_data_info <- data.frame(training_data_info)
test_data_info <- data.frame(test_data_info)

这些是多余的,对象已经是数据帧。所有这一切都是从整个数据集中删除那些在训练或测试数据集中缺失的级别。这就是错误的来源。尝试没有这两条线,你应该很高兴。

于 2013-03-31T18:15:57.153 回答