method 和 k的关系的疑问

来源:4-5 超参数

沉迷Cpp的web

2018-08-17

老师,当method为distance时,是要考虑距离这个权重的,这里我有点疑惑的是,当出现视频里的那种情况,最近的3个点是蓝色,但是红色距离的权重又大于蓝色,遇到这种情况算法应该如何选择,是考虑距离的话就不用考虑最近那几个颜色较多的点了吗?

写回答

1回答

liuyubobobo

2018-08-18

带权重的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的大小就好了:)


加油!

0
1
沉迷Cpp的web
非常感谢!
2018-08-18
共1条回复

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

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

5893 学习 · 2455 问题

查看课程