weka IBk的重量函数是什么?

时间:2013-09-27 07:13:18

标签: weka weighted-average

我正在执行数值变量的kNN预测(knn回归或局部加权平均值)。我使用欧氏距离和1 /距离作为重量,但我不知道这是如何应用的。我有疑问:

WEKA IBk对回归的权重究竟如何?这是一个简单的功能,如1 /距离或更复杂的东西?我查看了源代码,但我什么都听不懂。确切距离是如何定义的 - 是欧几里德还是一些修改?该代码的含义(这是来自IBk源代码的第867和868行):

distances[i] = distances[i]*distances[i];
distances[i] = Math.sqrt(distances[i]/m_NumAttributesUsed);

1 个答案:

答案 0 :(得分:1)

在kNN中,加权允许靠近数据点的邻居对预测值产生更大的影响

对于使用IBk的Weka中的数值回归,加权按链接method中所示执行。

我总结了以下伪代码中的步骤。

  

第0步:预测= 0 总计= 0

     

第1步:

     
    

对于每个k邻居:

         
        
  1. 计算与邻居的距离 i

  2.     
  3. 计算重量:重量= 1 /(距离)

  4.     
  5. 更新预测:预测=预测+邻居i的类别值*权重

  6.     
  7. 更新总数:总计=总计+重量
  8.        
     

第2步:预测=预测/总计

     

第3步:返回(预测)