关于避免过拟合

来源:8-6 验证数据集与交叉验证

js商博良

2020-08-03

老师,您好。
交叉验证本质上是为了避免训练过程中对于固定测试集的过拟合。“固定”在视频中的体现也就是,只经过一次train_test_split处理的测试集。倘若把train_test_split这个函数写入for循环,并且不固定随机种子,那么在每次搜索参数的过程中都能够保证用于评分的测试集都是不一样的,这样是否也能避免对于固定测试集的过拟合呢?
当然这样做似乎会存在一定随机性,为了减小这种随机性,可对于每次更新score的模型进行交叉验证,从而大大减小运算量并保证模型可靠性。请问这样可行吗?

写回答

1回答

liuyubobobo

2020-08-03

这个思路不对。这里的关键是,test 的数据集一旦划分出去了,就不应该再参与任何一点的训练过程了。test 数据的意义是模拟算法完全没有看过的数据。


也正因为如此,一些正规数据集,都直接分好了训练数据集和测试数据集,开发者也不要纠结怎么划分测试数据集这件事了。回忆一下,我们在之前使用的 MNIST 数据集就是如此。可以参考这里:http://coding.imooc.com/learn/questiondetail/75480.html


继续加油!:)

0
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程