Algorithm 加权K近邻的正确实现
据我所知,经典KNN算法的工作原理如下(对于离散数据):Algorithm 加权K近邻的正确实现,algorithm,machine-learning,classification,knn,Algorithm,Machine Learning,Classification,Knn,据我所知,经典KNN算法的工作原理如下(对于离散数据): 让x成为要分类的点 设dist(a,b)为点a和b 重复训练设定点pᵢ,计算距离距离(pᵢ,x) 将x分类为K点(根据dist)到x之间最频繁的类别 如何在这个经典KNN上引入权重?我读到应该更加重视更接近的点,我读到了,但不明白这将如何应用于离散数据 对我来说,首先,使用argmax没有任何意义,如果重量增加了距离,那么距离会变得更糟。对不起,如果我在胡说八道。好的,我可以说我不是你提供的链接的粉丝,它有图像方程,并且在图像和文
- 让x成为要分类的点
- 设dist(a,b)为点a和b
- 重复训练设定点pᵢ,计算距离距离(pᵢ,x)
- 将x分类为K点(根据dist)到x之间最频繁的类别
如何在这个经典KNN上引入权重?我读到应该更加重视更接近的点,我读到了,但不明白这将如何应用于离散数据 对我来说,首先,使用argmax没有任何意义,如果重量增加了距离,那么距离会变得更糟。对不起,如果我在胡说八道。好的,我可以说我不是你提供的链接的粉丝,它有图像方程,并且在图像和文本中遵循不同的符号。
让我们来看看常规的k-NN算法。正则k-NN实际上只是加权k-NN的一个特例。将权重1指定给k个邻居,将权重0指定给其余邻居
考虑一个简单的例子,有三个分类(红-绿-蓝)和由R,G,B表示的六个最近邻。我将使其线性化,以简化可视化和算术
R B G x G R R
列出的带有距离的点是
class dist
R 3
B 2
G 1
G 1
R 2
R 3
因此,如果我们使用未加权的最近邻,简单的“投票”算法是3-2-1,支持<代码>红色代码>。然而,在加权影响下,我们有
red_total = 1/3^2 + 1/2^2 + 1/3^2 = 1/4 + 2/9 ~= .47
blue_total = 1/2^2 ..............................= .25
green_total = 1/1^2 + 1/1^2 ......................= 2.00
。。。由于距离较近,x
变为绿色
下三角函数仅仅是分类函数;在这个简单的示例中,它返回红色|绿色|蓝色
。在一个更复杂的例子中。。。好吧,我将把这留给以后的教程。这一页已经适用于离散点。您只需将每个K
近邻的影响除以其与x
的距离即可。你到底被困在哪里?我被困在哪里/如何在我提到的经典算法上应用这个“影响变化”对我来说,首先,使用argmax没有任何意义,如果权重增加了距离,那么距离会变得更糟,对不起,如果我说的是废话。=>不,但您指定的权重与距离成反比。所以argmax会让老师相信一点对另一点的“影响”是距离。因此,我想知道,如果这真的是影响,为什么/如何修改它乘以某些因子距离不是原始影响,而是距离与影响成反比。so影响=距离^(-1)