PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] 关于K-fold交叉验证的一段程式码
楼主:
Tombo
(Tombo)
2021-03-08 19:30:33
不好意思,打扰了
想请教下面图片中关于
实作四折的k fold交叉验证的程式码
(出自市面上的教学书)
http://imgur.com/LM1nonA
自己的理解是
交叉验证只建立一次模型
之后执行k次拆解训练集去训练跟验证
但图中循环中会呼叫四次build_model方法
不过为什么不会变成重新建立四次新模型,而覆蓋之前的权重?
自己以为会是建立一次编译模型后
再连续四次用切割过的不同子资料集
呼叫fit做训练就好
谢谢
作者: aassdd926 (打东东)
2021-03-08 23:32:00
每次的训练集不同,模型就不同,等于 5 folds 给你 5个模型而为何不同,就是因为模型会根据 training data fit出它的 weights / parameters
楼主:
Tombo
(Tombo)
2021-03-08 23:53:00
我最后的问法有问题没讲清楚,我是想连续用k个不同的分割资料集来一口气训练完成,但是他的做法不是会一次又一次覆蓋权重,而不能巡回一遍资料集
作者:
empireisme
(empireisme)
2021-03-09 00:05:00
想问哪本教科书,感恩
作者: aassdd926 (打东东)
2021-03-09 10:48:00
我不太确定我理解的对否,但这样的概念不就是1个训练集,然后你用不同的batch size
楼主:
Tombo
(Tombo)
2021-03-09 13:07:00
tensorflow与keras- python深度学习应用实务,这本书 /他会分割成子资料集,跟不同验证资料集,所以好像也不太算bach size不同而已??就像最新回文的那位版友说的可以加强论证的感觉,抱歉最近才刚学习很多不了解
作者:
min86615
(minshang)
2021-03-09 18:17:00
不同的initialization weight有一定程度的会影响模型表现,所以通常会重新创建.(模型可能会学到上个模型留下来的pattern)
楼主:
Tombo
(Tombo)
2021-03-09 19:37:00
看完大家的回复跟再看一次书后,应该是自己误解交叉验证的背后精神,感觉是透过子资料集创建不同模型(所以需要重建),再透过这k个模型用平均数据或是其他方法找出结论,不是用同一个模型重复训练不同子资料集
作者:
min86615
(minshang)
2021-03-10 08:11:00
原po如果你用其他可解释性高的机器学习算法就不用重建,像是线性回归之类的,因为答案是唯一,不会因初始化影响,反正你只要得知error,所以这本书为何要重建其实是因为他用了NN,NN只能找到局部最优解,不像线性回归,所以导致每次NN的重量权值是不同的,甚至有可能被init weight影响。我认为原po的盲点应该在这 ,Kfold 就只是交叉验证的手法,你问我模型该不该保留等MSEMAE都符合需求要去做预测时再保留就行
作者:
ddavid
(谎言接线生)
2021-03-10 18:08:00
其实K-fold就是验证而已,并没有打算要用这K个模型找结论用多个模型综合得到结论的方式有很多种,例如我回应文提到的bagging、另外boosting、random forest也都是他们在“做法上”有些地方看起来跟K-fold有相似性,但意义上并不是相同的只是“刚好”你可以把K-fold的K个模型留下来做bagging省去重train的时间而已,但就只是刚好可利用而已
继续阅读
[问题] 无法安装Python-numpy-dbg及其他的套件
asd24693120
[问题] 正规表达式-车牌号码
hau0218
[问题] google表单
legov
[问题] 新手请教 excel范围读取和写入
beryl522
[问题] 爬虫程式如何判断某些连结的档名
martinqqq321
Re: [心得] 九九乘法表 不使用循环
LP9527
Re: [问题] 如何优化循环的写法
LP9527
Re: [问题] 如何优化循环的写法
Schottky
[问题] 如何优化循环的写法
xji4y3ru
[问题] 如何爬一个每次打开来都不太一样的网页
freddy
Links
booklink
Contact Us: admin [ a t ] ucptt.com