【发布时间】:2019-03-07 14:35:49
【问题描述】:
我有一个数据集并将其分为 train (80%) 和 test (20%) 集。 第一步是建立决策树,然后我使用我的测试集进行预测。
tree <- rpart(train$number ~ ., train, method = "class")
pred <- predict(tree,test, type ="class")
运行后,我得到一个错误:
model.frame.default 中的错误(条款,新数据,na.action = na.action, xlev = attr(object, : Faktor 'orderland' hat neue Stufen Zypern
这基本上意味着,我的测试集中有土地“Zypern”,但在我的火车集中没有。为了解决这个问题,我用谷歌搜索并通过将因子水平设置为相等来尝试这一点。
train$orderland <- factor(train$orderland, levels=levels(test$orderland))
测试和训练数据总结:
> summary(train)
number orderland lenkung transmission IntervalRange
Length:54616 NA's:54616 Length:54616 Length:54616 1: 7893
Class :character Class :character Class :character 2:39528
Mode :character Mode :character Mode :character 3: 7195
> summary(test)
number orderland lenkung transmission IntervalRange
Length:13655 Length:13655 Length:13655 Length:13655 1:1959
Class :character Class :character Class :character Class :character 2:9904
Mode :character Mode :character Mode :character Mode :character 3:1792
但我得到了同样的错误......任何想法为什么?
【问题讨论】:
-
你能发布来自
summary()的输出,同时调用train和test吗? -
请查看我的编辑
-
看起来 'orderland' 是 ALL NA
标签: r classification decision-tree training-data levels