Algorithm 加权K近邻的正确实现

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没有任何意义,如果重量增加了距离,那么距离会变得更糟。对不起,如果我在胡说八道。好的,我可以说我不是你提供的链接的粉丝,它有图像方程,并且在图像和文

据我所知,经典KNN算法的工作原理如下(对于离散数据):

  • x成为要分类的点
  • dist(a,b)为点ab
  • 重复训练设定点pᵢ,计算距离距离(pᵢ,x)
  • x分类为K点(根据dist)到x之间最频繁的类别

如何在这个经典KNN上引入权重?我读到应该更加重视更接近的点,我读到了,但不明白这将如何应用于离散数据

对我来说,首先,使用argmax没有任何意义,如果重量增加了距离,那么距离会变得更糟。对不起,如果我在胡说八道。

好的,我可以说我不是你提供的链接的粉丝,它有图像方程,并且在图像和文本中遵循不同的符号。


让我们来看看常规的k-NN算法。正则k-NN实际上只是加权k-NN的一个特例。将权重1指定给k个邻居,将权重0指定给其余邻居

  • 设Wqj表示与点j相关联的相对于点q的权重

  • 设yj为与数据点j关联的类标签。为了简单起见,让我们假设我们将鸟类分类为乌鸦、母鸡或火鸡=>离散类。因此,对于所有的j,yj
    考虑一个简单的例子,有三个分类(红-绿-蓝)和由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)