我建了一个分类模型中的R使用C5.0如下:
library(C50)
library(caret)
a = read.csv("All_SRN.csv")
set.seed(123)
inTrain <- createDataPartition(a$anatomy, p = .70, list = FALSE)
training <- a[ inTrain,]
test <- a[-inTrain,]
Tree <- C5.0(anatomy ~ ., data = training,
trControl = trainControl(method = "repeatedcv", repeats = 10,
classProb = TRUE))
TreePred <- predict(Tree, test)
训练集具有相同的特征- examcard, coil_used, anatomy_region, bodypart_anatomy and anatomy
(目标类)。 所有功能都是分类变量。 共有10K奇数值的是,我分割数据分成训练和测试数据。 学习者伟大的工作,在70:30的比例进行分配这种训练和测试集,但问题是当我提供的测试集下面给出新的价值:
TreePred <- predict(Tree, test_add)
在这里,test_add包含了已经存在的测试组和一组上运行学习者未能在新的价值分类,并引发以下错误的新的价值观和:
Error in model.frame.default(object$Terms, newdata, na.action = na.action, : factor examcard has new levels
我试图使用现有的一个合并的新因子水平:
Tree$xlevels[["examcard"]] <- union(Tree$xlevels[["examcard"]], levels(test_add$examcard))
但是,这不是,因为以下消息执行的代码太大的帮助,并没有取得任何成果丰硕:
predict code called exit with value 1
该feaure examcard持有分级首要的一个很好的协议,因此不能忽视。 如何能够将这些设定值进行分类?