参数设置

来源:4-2 scikit-learn中的机器学习算法封装

ITMOCC

2020-11-13

无论是自己实现的还是sklearn中的train_test_split方法都有测试比例和种子这两个参数,不同的测试比例和种子会导致不同的超参数结果(不同的p,k还有准确率)。这两个参数怎么选取,是通过不断调参?调参应该有个范围吧?测试比例还有范围,种子的值我不太懂代表什么意思,不同的种子值代表什么?有没有范围?

写回答

1回答

liuyubobobo

2020-11-13

关于随机种子,可以参考这里:http://coding.imooc.com/learn/questiondetail/102278.html


不需要对随机种子,包括 train test 分配的比例做搜索。可以参考这里:http://coding.imooc.com/learn/questiondetail/196103.html


train test split 的意思就是,拿出一部分数据(test),假装这部分数据你根本就不知道,只是用 train 做模型训练,看效果是怎样的。你不知道的数据,也就不需要搜索。更正规的数据集,直接规定了什么是测试数据,你也就不需要 split 了。比如 MNIST(课程后续会介绍)


另外,更严格的测试方式是使用交叉验证,课程后续也会介绍。


继续加油!:)

2
2
liuyubobobo
回复
ITMOCC
1,是的,如果种子不同,准确率不一样。就是因为不同种子随机分配的数据不同;2,工作中的数据集和我们现在用的数据集是一样的。没有“完美的划分训练数据集和测试数据集”的方式。交叉验证没有解决这个问题,请仔细复习交叉验证的过程。交叉验证也需要划分训练数据和测试数据集。如果真想抵抗这个问题带来的后果,那就是整体数据集越大越好,你能够获得的数据越多,涵盖的情况越全面,即便随机划分,得到的结果出入也不会太大。
2020-11-28
共2条回复

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

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

5839 学习 · 2437 问题

查看课程