method 和 k的关系的疑问
来源:4-5 超参数

沉迷Cpp的web
2018-08-17
老师,当method为distance时,是要考虑距离这个权重的,这里我有点疑惑的是,当出现视频里的那种情况,最近的3个点是蓝色,但是红色距离的权重又大于蓝色,遇到这种情况算法应该如何选择,是考虑距离的话就不用考虑最近那几个颜色较多的点了吗?
写回答
1回答
-
带权重的k近邻算法,是找到k个最近点。假设其中有a个红色点,b个蓝色点(a+b=k),每个点又都有一个权重值,我们就可以计算出a个红色点的权重和以及b个蓝色点的权重和。用这两个权重和去比较。如果a个红色点的权重和大于b个蓝色点的权重和,则选a;否则选b。
所以,在你说的情况下,假设红色节点的距离为2,此时红色点的权重和为1/2,蓝色节点的权重和为1/3+1/4=7/12,蓝色获胜。
请体会,这纯粹是一个计算过程。我们设定出一个规则,然后计算结果比较就好了。关键是我们设定的规则是否合理。你也可以看出来,我们的这个规则,其实是考虑进了k个点中a,b的数量了。在上面的例子中,蓝色之所以可能获胜,正是因为有两个点。单独看1/3和1/4,都比1/2小,但是加起来,大于1/2了:)
再体会一下,不考虑权重的k近邻算法,本质就是每个店的权重都是相等的,都为1。此时,我们相当于直接考虑a和b的大小就好了:)
加油!
012018-08-18
相似问题