我是使用插入库的新手,它给我带来了一些问题。任何 帮助/建议将不胜感激。我的情况如下:
我正在尝试对某些数据运行一般线性模型,当我运行它时 通过confusionMatrix,我得到'数据和参考因素必须有 相同数量的水平'。我知道这个错误意味着什么(我以前遇到过它),但是我已经对我的数据操作进行了双重和三重检查,并且它看起来都正确(我在正确的位置使用正确的变量),所以我是不确定为什么confusionMatrix中的两个值不一致。我为不同的变量运行几乎完全相同的代码,它运行正常。
我经历了每一个变量,一切都是平衡的,直到我到达 confusionMatrix预测。我通过以下方式发现了这一点:
a< - table(testing2 $ hold1yes0no)
一个[1] + A [2]
1543
b< - table(predict(modelFit,trainTR2))
暗淡(b)中
[1] 1538
这两个值不应该不一致。丢失的5行在哪里?
我的代码如下:
set.seed(2382)
inTrain2< - createDataPartition(y = HOLD $ hold1yes0no,p = 0.6,list = FALSE)
training2< - HOLD [inTrain2,]
testing2< - HOLD [-inTrain2,]
preProc2< - preProcess(training2 [-c(1,2,3,4,5,6,7,8,9)],method =“BoxCox”)
trainPC2< - predict(preProc2,training2 [-c(1,2,3,4,5,6,7,8,9)])
trainTR2< - predict(preProc2,testing2 [-c(1,2,3,4,5,6,7,8,9)])
modelFit< - train(training2 $ hold1yes0no~。,method =“glm”,data = trainPC2)
confusionMatrix(testing2 $ hold1yes0no,predict(modelFit,trainTR2))
答案 0 :(得分:0)
我不确定,因为我不知道您的数据结构,但我想知道这是否是由于您使用公式方法设置modelFit
的方式。在这种情况下,您指定y = training2$hold1yes0no
和x =其他所有内容。也许你应该尝试:
modelFit <- train(trainPC2, training2$hold1yes0no, method="glm")
指定y = training2$hold1yes0no
和x = trainPC2
。