采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,当method为distance时,是要考虑距离这个权重的,这里我有点疑惑的是,当出现视频里的那种情况,最近的3个点是蓝色,但是红色距离的权重又大于蓝色,遇到这种情况算法应该如何选择,是考虑距离的话就不用考虑最近那几个颜色较多的点了吗?
带权重的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的大小就好了:)
加油!
非常感谢!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
3.4k 19
4.4k 17
4.0k 15
2.2k 15
2.1k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号