【问题标题】:Use a KNN-regression algorithm in R在 R 中使用 KNN 回归算法
【发布时间】:2016-10-30 13:15:42
【问题描述】:

我正在使用具有某个已识别变量(测试)的 k 个最近邻居来确定具有此值未识别(测试)的个人的同一变量的值。那么可以采用两种可能的方法: 首先(简单的一个),计算k个人的变量的平均值;第二个(最好的),根据个体的接近程度计算一个加权距离值。

我的第一种方法是使用 FNN 包中的 knn.index 函数来识别最近的邻居,然后使用索引,在数据集中查找值做的意思。由于数据集非常大,因此工作速度很慢。是否已经实现了任何算法来更快地进行此计算,是否可以根据距离添加权重?

【问题讨论】:

  • 哪个慢?调用knn.index,还是计算平均值?
  • 计算平均值,因为它每次都必须访问数据集来定位每个邻居。
  • 您写道,您有两种方法:“简单的一种”和“最好的一种”。哪个慢?
  • 我试过慢的,只是一个简单的意思。

标签: r knn weighted-average


【解决方案1】:

在尝试解决问题一周后,我发现 R 中的一个函数正在解决我的问题,这可能会帮助其他遇到同样问题的人。

函数名为kknn,在KKNN包中。它可以让您进行 KNN 回归,但按距离对点进行加权。

【讨论】:

  • KNN 的公式?似乎很奇怪。可能值得给来自 Python 中的 sklearn 的KNeighborsRegresson 一个机会。
猜你喜欢
  • 2018-06-05
  • 2013-11-17
  • 1970-01-01
  • 2016-01-17
  • 2020-06-29
  • 2019-11-02
  • 2012-06-07
  • 2013-06-19
  • 2018-11-09
相关资源
最近更新 更多