楼主: saly@123
13499 9

[实际应用] R建立预测模型的时候,怎么用测试集去检验模型呢? [推广有奖]

  • 0关注
  • 1粉丝

已卖:1份资源

硕士生

84%

还不是VIP/贵宾

-

威望
0
论坛币
104 个
通用积分
6.0062
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
5602 点
帖子
159
精华
0
在线时间
144 小时
注册时间
2016-11-15
最后登录
2018-9-28

楼主
saly@123 发表于 2018-5-3 20:43:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
建立了一个线性的回归模型,想要用该模型去得到测试集中要预测的数据,应该怎么用R来实现呢?
predict函数好像是进行预测的函数,但是在R里面就算把测试集的数据放进去,得到的也只是训练集中的数据,这是为什么呢?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:预测模型 测试集 predict 回归模型 Pred

回帖推荐

xwan288 发表于8楼  查看完整内容

我将数据全部粘粘到一个csv中,并用Train这个变量来区分是否为测试集

沙发
rainningpoet 发表于 2018-5-3 22:23:01
最好能把代码发上来 其他人才能更好帮到你

藤椅
saly@123 发表于 2018-5-4 09:25:26
谢谢提醒,下面是代码,希望大神能解答下:
lm_function=lm(formula = datatrain$Item_Outlet_Sales~datatrain$Item_Weight+datatrain$Item_Fat_Content+datatrain$Item_Visibility+datatrain$Item_MRP+datatrain$year+datatrain$Outlet_Size+datatrain$Outlet_Location_Type+datatrain$Outlet_Type+datatrain$Item_Visibility_Ratio)  #用线性回归模型进行建模,因变量是datatrain$Item_Outlet_Sales
predict(lm_function,datatest)   #用得到的回归模型,对测试集datatest进行判断
运行完predict后,总是出错:
Warning message:
'newdata' had 5681 rows but variables found have 8523 rows
说明:5681 rows是datatest中的数据的行数,8523 rows 是datatrain中的数据的行数

板凳
420948492 发表于 2018-5-5 10:30:37
你在train中用于建模预测的变量是否与测试集dataset变量名完全一致??
威哥每个变量前面都有一个前缀datatrain

报纸
saly@123 发表于 2018-5-5 20:33:17
420948492 发表于 2018-5-5 10:30
你在train中用于建模预测的变量是否与测试集dataset变量名完全一致??
威哥每个变量前面都有一个前缀data ...
是完全一致的,而且我也在变量前面加了datatrain啊。请问你知道该怎么解决吗?

地板
420948492 发表于 2018-5-6 09:51:36
saly@123 发表于 2018-5-5 20:33
是完全一致的,而且我也在变量前面加了datatrain啊。请问你知道该怎么解决吗?
方便上传个几十行的模拟数据集吗?可以试一下,看看是什么原因,比如变量类型是否一致,取值是否相同

7
saly@123 发表于 2018-5-6 20:49:44
420948492 发表于 2018-5-6 09:51
方便上传个几十行的模拟数据集吗?可以试一下,看看是什么原因,比如变量类型是否一致,取值是否相同
好的,模拟数据集在附件的excel中了,麻烦你帮我看一下了。
Data.xlsx (13.85 KB)

8
xwan288 发表于 2018-5-7 23:06:22
saly@123 发表于 2018-5-6 20:49
好的,模拟数据集在附件的excel中了,麻烦你帮我看一下了。
我将数据全部粘粘到一个csv中,并用Train这个变量来区分是否为测试集
  1. data = read.csv("C:/Users/Administrator/Desktop/Data.csv")

  2. train = data[data$Train == T,]
  3. test = data[data$Train == F,]

  4. train$Train = NULL
  5. test$Train =NULL

  6. lm = lm(Item_Outlet_Sales~Item_Weight , data= train)

  7. summary(lm)

  8. test$Item_Outlet_Sales = predict(lm,test)
复制代码
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
saly@123 + 2 + 1 + 1 + 1 热心帮助其他会员
420948492 + 100 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 100  论坛币 + 2  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

9
saly@123 发表于 2018-5-8 22:34:33
xwan288 发表于 2018-5-7 23:06
我将数据全部粘粘到一个csv中,并用Train这个变量来区分是否为测试集
谢谢你,代码试了一下,没有问题了。不过能解释一下我上面的报错的原因吗?

10
xwan288 发表于 2018-5-9 00:27:17
saly@123 发表于 2018-5-8 22:34
谢谢你,代码试了一下,没有问题了。不过能解释一下我上面的报错的原因吗?
似乎代码中有乱码,我这里看不太清楚,不好意思

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 12:27