我在尝试解决 R 中的多项分类方程时遇到了很多麻烦。我正在使用 nnet 和 caret 包来解决这个问题。下面是一个数据集,这是可重现的:
df
PARTNER2 ADV
A Gamma
B Gamma
C Gamma
D Gamma
D Gamma
E Gamma
F Gamma
G Gamma
F Gamma
F Gamma
H Gamma
I Gamma
F Gamma
J Gamma
D Gamma
E Beta
K Beta
D Beta
D Beta
E Beta
F Beta
L Beta
F Beta
F Beta
M Beta
F Beta
E Beta
N Zeta
J Zeta
N Zeta
O Zeta
D Zeta
P Zeta
Q Zeta
D Zeta
F Zeta
L Zeta
F Zeta
F Zeta
D Zeta
D Zeta
L Alpha
L Alpha
R Alpha
E Alpha
F Alpha
D Alpha
D Alpha
N Alpha
从这里开始,我使用 caret 包来训练数据并使用模型来预测出现ADV
时PARTNER2
出现的概率。虽然最后我得到一个错误,但我似乎无法解决。
inTrain <- createDataPartition(y=df$ADV, p=0.75, list=FALSE) # We wish 75% for the trainset
train.set <- df[inTrain,]
test.set <- df[-inTrain,]
nrow(train.set)/nrow(test.set) # should be around 3
model <- train(ADV ~ ., train.set,
method='nnet',
trace = FALSE)
prediction <- predict(model, newdata=test.set[-2], type="prob")
model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) 中的错误:因子 PARTNER2 具有新级别 I、J
有人能帮我解决这个问题吗?