作者Tombo (Tombo)
看板Python
标题[问题] 关於K-fold交叉验证的一段程式码
时间Mon Mar 8 19:30:33 2021
不好意思,打扰了
想请教下面图片中关於
实作四折的k fold交叉验证的程式码
(出自市面上的教学书)
http://imgur.com/LM1nonA
自己的理解是
交叉验证只建立一次模型
之後执行k次拆解训练集去训练跟验证
但图中回圈中会呼叫四次build_model方法
不过为什麽不会变成重新建立四次新模型,而覆盖之前的权重?
自己以为会是建立一次编译模型後
再连续四次用切割过的不同子资料集
呼叫fit做训练就好
谢谢
-----
Sent from JPTT on my Sony I4193.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.71.121.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1615203035.A.66F.html
※ 编辑: Tombo (111.71.121.145 台湾), 03/08/2021 19:31:42
1F:→ aassdd926: 每次的训练集不同,模型就不同,等於 5 folds 给你 503/08 23:32
2F:→ aassdd926: 个模型03/08 23:32
3F:→ aassdd926: 而为何不同,就是因为模型会根据 training data fit03/08 23:36
4F:→ aassdd926: 出它的 weights / parameters03/08 23:36
5F:→ Tombo: 我最後的问法有问题没讲清楚,我是想连续用k个不同的分割资03/08 23:53
6F:→ Tombo: 料集来一口气训练完成,但是他的做法不是会一次又一次覆盖03/08 23:53
7F:→ Tombo: 权重,而不能巡回一遍资料集03/08 23:53
※ 编辑: Tombo (140.122.136.109 台湾), 03/08/2021 23:55:29
8F:推 empireisme: 想问哪本教科书,感恩 03/09 00:05
9F:→ aassdd926: 我不太确定我理解的对否,但这样的概念不就是1个训练 03/09 10:48
10F:→ aassdd926: 集,然後你用不同的batch size 03/09 10:48
11F:→ Tombo: tensorflow与keras- python深度学习应用实务,这本书 /他会 03/09 13:07
12F:→ Tombo: 分割成子资料集,跟不同验证资料集,所以好像也不太算bach si 03/09 13:07
13F:→ Tombo: ze不同而已??就像最新回文的那位版友说的可以加强论证的 03/09 13:07
14F:→ Tombo: 感觉,抱歉最近才刚学习很多不了解 03/09 13:07
15F:推 min86615: 不同的initialization weight有一定程度的会影响模型表 03/09 18:17
16F:→ min86615: 现,所以通常会重新创建.(模型可能会学到上个模型留下来 03/09 18:17
17F:→ min86615: 的pattern) 03/09 18:17
18F:→ Tombo: 看完大家的回覆跟再看一次书後,应该是自己误解交叉验证的 03/09 19:37
19F:→ Tombo: 背後精神,感觉是透过子资料集创建不同模型(所以需要重建 03/09 19:37
20F:→ Tombo: ),再透过这k个模型用平均数据或是其他方法找出结论,不是 03/09 19:37
21F:→ Tombo: 用同一个模型重复训练不同子资料集 03/09 19:37
22F:推 min86615: 原po如果你用其他可解释性高的机器学习算法就不用重建, 03/10 08:11
23F:→ min86615: 像是线性回归之类的,因为答案是唯一,不会因初始化影响 03/10 08:11
24F:→ min86615: ,反正你只要得知error,所以这本书为何要重建其实是因 03/10 08:11
25F:→ min86615: 为他用了NN,NN只能找到局部最优解,不像线性回归,所以 03/10 08:11
26F:→ min86615: 导致每次NN的重量权值是不同的,甚至有可能被init weigh 03/10 08:11
27F:→ min86615: t影响。我认为原po的盲点应该在这 ,Kfold 就只是交叉验 03/10 08:11
28F:→ min86615: 证的手法,你问我模型该不该保留等MSEMAE都符合需求要去 03/10 08:11
29F:→ min86615: 做预测时再保留就行 03/10 08:11
30F:推 ddavid: 其实K-fold就是验证而已,并没有打算要用这K个模型找结论 03/10 18:08
31F:→ ddavid: 用多个模型综合得到结论的方式有很多种,例如我回应文提到 03/10 18:09
32F:→ ddavid: 的bagging、另外boosting、random forest也都是 03/10 18:11
33F:→ ddavid: 他们在「做法上」有些地方看起来跟K-fold有相似性,但意义 03/10 18:11
34F:→ ddavid: 上并不是相同的 03/10 18:12
35F:→ ddavid: 只是「刚好」你可以把K-fold的K个模型留下来做bagging省去 03/10 18:12
36F:→ ddavid: 重train的时间而已,但就只是刚好可利用而已 03/10 18:13