楼主: liyuell
2779 3

[问答] k-fold cross validation为什要set.seed? [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

高中生

72%

还不是VIP/贵宾

-

威望
0
论坛币
63 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
234 点
帖子
16
精华
0
在线时间
34 小时
注册时间
2017-1-9
最后登录
2021-1-18

楼主
liyuell 发表于 2017-11-10 15:25:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
用k-fold cross validation生成的error来判断哪个模型更加合适的时候,
使用cv.glm()函数前为什么要set.seed?
另外发现seed不一样,生成的结果也不一样,例如下面的code:
1、
library(boot)

set.seed(10)
cv.error=rep(0,5)
for (i in 1:5){
  glm.fit=glm(nox~poly(dis,i),data=Boston)
  cv.error[i]=cv.glm(Boston,glm.fit,K=10)$delta[1]
}

当把seed设置为10时,结果是:
> cv.error
[1] 0.005490919 0.004095812 0.003863046 0.003918877 0.004121742


此时观察结果,应该是第三个模型最优。

2、seed为1时,结果如下:
> cv.error
[1] 0.005536329 0.004077147 0.003899587 0.003862127 0.004298590
此时应该是第四个模型最优。


请问为什么会出现这种情况嘞??
set.seed影响的到底是什么????????
二维码

扫码加我 拉你入群

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

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


沙发
GOD.M.W 学生认证  发表于 2017-11-12 11:31:51 来自手机
liyuell 发表于 2017-11-10 15:25
用k-fold cross validation生成的error来判断哪个模型更加合适的时候,
使用cv.glm()函数前为什么要set.se ...
set.seed是设置随机种子,是为了让随机的运行结果能够重现。设置成不同的数当然就是不同的随机值了。

藤椅
jameschin007 发表于 2017-11-13 11:30:47
就是你需要重现时,就输入对应的种子数,就会重现对应的数据。
至于你说不同的种子数, 结果不一样, 说明两个模型效果差不多, 有随机波动,需要多几次随机数据的测试,看看哪个模型得分最好。

板凳
liyuell 发表于 2018-1-2 16:18:06
jameschin007 发表于 2017-11-13 11:30
就是你需要重现时,就输入对应的种子数,就会重现对应的数据。
至于你说不同的种子数, 结果不一样, 说明 ...
懂了!谢谢!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 03:18