k-近邻涉及到的参数不多,也容易玩,因此我们来看下最为关键的参数k,对结果的影响。
之前我们都是把结果设置成了3,如数字识别,3的结果是1.06%的错误率。
我们来看看其他的:
1:最靠近哪个就是哪个,1.37%的错误率,也很不错嘛!看来你和闺蜜/兄弟的性格很接近啊。
2:1.37%,也挺好;
5:1.79%,开始下滑了;
10:2% 20:2.75% 50:5.18% 100:7.18%
至此可以看出,k大到一定程度(在这个数据集里,5就开始有点下滑了),结果就会变差。所以,k并非是越大越好。你可能要多次跑数据后,才能找到最合适的值。像这个数据集里,3这样小的数字,反而是最佳的设置。
如上是手写数字识别的数据集,我们来看看之前约会的数据集(90%的数据)。
3:8.11%,有点差,但用在约会判断上也还可以了;
1:9.6%,一票否决,也还好,能接受;
5:7.67%,看,比3还好,所以对于不同的数据集,并不是3是最好的;
7:7.78%,也差不多;
11:9.33%,变差了;
21:12.89%,又差了;后面就不测了;
所以呢,对于约会数据集,5-7是最佳的(我试了下6,和5的结果是一样的)。
由两个数据集的测试可得:
1)k不是越大越好,但至少要达到3;
2)要经过实测,确定最佳的k,而3可以作为初始值(不要认为3就一定是最佳值);
好了,这篇比较简短。但是观点是比较明确的。希望大家喜欢。