在插入符号中预测ConfusionMatrix正在删除行

时间:2014-06-19 06:27:51

标签: r r-caret

我是使用插入库的新手,它给我带来了一些问题。任何 帮助/建议将不胜感激。我的情况如下:

我正在尝试对某些数据运行一般线性模型,当我运行它时 通过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))

1 个答案:

答案 0 :(得分:0)

我不确定,因为我不知道您的数据结构,但我想知道这是否是由于您使用公式方法设置modelFit的方式。在这种情况下,您指定y = training2$hold1yes0no和x =其他所有内容。也许你应该尝试:

modelFit <- train(trainPC2, training2$hold1yes0no, method="glm")

指定y = training2$hold1yes0nox = trainPC2