You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何使用测试数据计算训练模型的MSE及处理长度不匹配警告

问题原因

你遇到的警告是预测值和测试集真实值长度不匹配导致的,核心问题出在predict()函数的使用上:

  • predict(Price.Model1)不指定newdata参数时,默认返回的是训练集样本的拟合值,长度和你的train.data样本量一致
  • 测试集test.data的样本量是总样本的25%,和训练集长度不一致,两个不等长向量相减时R会触发循环补齐规则,不仅触发警告,计算出的MSE结果也完全错误
正确代码

将predict部分指定测试集作为新数据即可:

mean((test.data$Y.house.price.of.unit.area - predict(Price.Model1, newdata = test.data))^2)
验证方法

你可以运行以下代码确认长度匹配情况:

  • 查看测试集真实值长度:length(test.data$Y.house.price.of.unit.area)
  • 查看未指定newdata的预测值长度:length(predict(Price.Model1))
  • 查看指定newdata后的预测值长度:length(predict(Price.Model1, newdata = test.data))

最后一行的长度会和测试集真实值长度完全一致,不会再触发警告,计算出的也是正确的测试集MSE。

内容的提问来源于stack exchange,提问作者user16301499

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:15:10