R - getting the error: "Invalid argument: 'sim' & 'obs' doesn't have the same length !"
R - getting the error: "Invalid argument: 'sim' & 'obs' doesn't have the same length !"
我一直在 R Studio 中学习 R,并且一直致力于简单的预测建模。
我收到以下错误:
Invalid argument: 'sim' & 'obs' doesn't have the same length !
当我运行这行代码时:
rmse(testingbabydata$weight, predictedWeight)
数据集 linked here 包含 1000 行,全局环境窗格显示我的测试数据和我的训练数据各有“500 obs. of 2 variables”。
库 hydroGOF
也应该已经正确加载。
这是我的代码片段,我试图根据怀孕的周长来预测婴儿的体重:
ncbabydata=read.csv("nc.csv",header=TRUE,stringsAsFactors = FALSE`)
trainingbabydata=ncbabydata[seq(1,nrow(ncbabydata),2),c("weeks","weight")]
testingbabydata=ncbabydata[seq(2,nrow(ncbabydata),2),c("weeks","weight")]
model = train(weight ~.,trainingbabydata,method="rf")
predictedWeight=predict(model,testingbabydata)
rmse(testingbabydata$weight, predictedWeight)
感谢您的宝贵时间! (我确实首先尝试 google 此错误消息,但没有找到我可以相对容易理解的合适来源。)
事实上,你的两个向量的长度不一样:
> length(predictedWeight)
[1] 498
> length(testingbabydata$weight)
[1] 500
这是因为您的某些特征不适用,而您的预测只是忽略了这些行。处理模型中缺失的数据是一个复杂的主题,但由于它只有 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
我一直在 R Studio 中学习 R,并且一直致力于简单的预测建模。
我收到以下错误:
Invalid argument: 'sim' & 'obs' doesn't have the same length !
当我运行这行代码时:
rmse(testingbabydata$weight, predictedWeight)
数据集 linked here 包含 1000 行,全局环境窗格显示我的测试数据和我的训练数据各有“500 obs. of 2 variables”。
库 hydroGOF
也应该已经正确加载。
这是我的代码片段,我试图根据怀孕的周长来预测婴儿的体重:
ncbabydata=read.csv("nc.csv",header=TRUE,stringsAsFactors = FALSE`)
trainingbabydata=ncbabydata[seq(1,nrow(ncbabydata),2),c("weeks","weight")]
testingbabydata=ncbabydata[seq(2,nrow(ncbabydata),2),c("weeks","weight")]
model = train(weight ~.,trainingbabydata,method="rf")
predictedWeight=predict(model,testingbabydata)
rmse(testingbabydata$weight, predictedWeight)
感谢您的宝贵时间! (我确实首先尝试 google 此错误消息,但没有找到我可以相对容易理解的合适来源。)
事实上,你的两个向量的长度不一样:
> length(predictedWeight)
[1] 498
> length(testingbabydata$weight)
[1] 500
这是因为您的某些特征不适用,而您的预测只是忽略了这些行。处理模型中缺失的数据是一个复杂的主题,但由于它只有 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