R - 得到错误:“无效的参数:'sim'&'obs'的长度不一样!”

时间:2016-10-29 00:19:25

标签: r rstudio modeling prediction invalid-argument

我一直在R Studio中学习R,并且一直致力于简单的预测建模。 我收到以下错误:   参数无效:'sim'& 'obs'的长度不一样! 当我运行这行代码时: rmse(testingbabydata $ weight,predictWeight) 此处链接的数据集包含1000行,全局环境窗格显示我的测试数据和我的训练数据各有“500个2个变量”。 图书馆hydroGOF也应该已经正确加载。 这是我的代码片段,其中我尝试根据怀孕的周长来预测婴儿的体重: ncbabydata = read.csv(“nc.csv”,header = TRUE,stringsAsFactors = FALSE`) trainingbabydata = ncbabydata [SEQ(1,nrow(ncbabydata),2),C( “周”, “权重”)] testingbabydata = ncbabydata [SEQ(2,nrow(ncbabydata),2),C( “周”, “权重”)] model = train(weight~。,trainingbabydata,method =“rf”) predictedWeight =预测(模式,testingbabydata) rmse(testingbabydata $ weight,predictWeight) 感谢您的时间! (我确实首先尝试谷歌此错误消息,但找不到我能比较容易理解的合适来源。)

1 个答案:

答案 0 :(得分:1)

事实上,你的两个向量长度不一样:

> length(predictedWeight)
[1] 498
> length(testingbabydata$weight)
[1] 500

原因是您的某些功能是NA,而您的预测只是省略了这些行。处理模型中缺少的数据是一个复杂的主题,但由于它只有500行中的两行,你现在可以删除它们并继续学习:

testingbabydata<-testingbabydata[complete.cases(testingbabydata),]

然后你可以计算你的RMSE(你也可以直接做,没有助手):

> sqrt(mean((testingbabydata$weight-predictedWeight)^2))
[1] 1.025823

并且您可以将其与始终预测平均值的模型进行比较:

> sqrt(mean((testingbabydata$weight-mean(testingbabydata$weight))^2))
[1] 1.460638