请稍等 ...
×

采纳答案成功!

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

gridsearch knn

老师好!
问题如下:

背景:
我在使用grid这种方式的时候,当n-neighbours在1—5搜索的时候,得到的分数是0.82,但是此时n=4,p=3根据您说的经验,太靠近边界了,我于是调整n范围到1—10搜索,结果得分成了0.80,此时n=6,p=1
其他条件是:固定了train-test split种子=888, p范围两次迭代保持不变,都是1—5,cv=5

问题是:

1 grid得到的是最好的参数,而它是个平均值,但是我们想要的是在测试集上最好的分数。是不是应该把在测试集上的分数作为条件拿进去遍历?反推出最好的参数

2 遍历参数的范围该如何选取?就像这个,范围大了反而变差。困惑?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-07-25 14:02:27

1

"在测试集上的分数作为条件拿进去遍历?反推出最好的参数" 设个是什么意思?我没有特别理解?具体说明一下你想象的操作过程是怎样的?


2

一般参数遍历的范围可以使用一个从粗到细的过程。比如对于 kNN,可以尝试k 在 10, 20, 30, 40 中先搜索尝试一下,可能结果是 10 比较好,在尝试看一下 10 周边具体那个值更好。


当然,我举得例子对应的数据规模会比较大。其实通常机器学习算法处理的训练数据集,就是要比较大。如果比较小的数据集,参数有微小的抖动,就会对结果有很大的影响。但是这很大的影响,对应因为数据规模小,所以其实只是几个数据点的变化,说明不了什么问题。


与你给出的结果,k 是 4 或者 6,p 是 1 或者 3,在我看来就是很稳定的结果了。他们整体是在一个区间里的。


继续加油!:)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信