请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

参数设置

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

正在回答

1回答

关于随机种子,可以参考这里: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 回复 有任何疑惑可以回复我~
  • 提问者 ITMOCC #1
    那如何解释种子的值不同导致准确率不同呢?可以理解为种子值不同会产生不同的随机排列吗?那不设种子是不是每次准确率都不一样?还有如果不是用数据集来实现算法。而是工作中的实际数据呢?该如何确定测试集和训练集的比例呢?用交叉验证吗?
    回复 有任何疑惑可以回复我~ 2020-11-28 21:06:59
  • liuyubobobo 回复 提问者 ITMOCC #2
    1,是的,如果种子不同,准确率不一样。就是因为不同种子随机分配的数据不同;2,工作中的数据集和我们现在用的数据集是一样的。没有“完美的划分训练数据集和测试数据集”的方式。交叉验证没有解决这个问题,请仔细复习交叉验证的过程。交叉验证也需要划分训练数据和测试数据集。如果真想抵抗这个问题带来的后果,那就是整体数据集越大越好,你能够获得的数据越多,涵盖的情况越全面,即便随机划分,得到的结果出入也不会太大。
    回复 有任何疑惑可以回复我~ 2020-11-28 23:38:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信