knnimpute是如何工作的?

3
https://dev59.com/rZTfa4cB1Zd3GeqPSIzx#35684975中,我得知K-最近邻插补的工作原理如下:
  1. 对于当前观察值,获取与所有其他观察值的距离。
  2. 针对当前观察值中的每个缺失值,考虑所有那些在相关特征上没有缺失值的k个最近观察值。
  3. 从这些观察值的特征值中计算平均值(或某些类似的统计量)- 这是用于插补的值。
关键步骤是1:如果不是所有值都可用,我们如何计算距离?上面的帖子指向了异质欧几里得-重叠度量。然而,我对fancyimpute的knn-imputation实现很感兴趣。我追踪到了https://github.com/hammerlab/knnimpute,更具体地说是https://github.com/hammerlab/knnimpute/blob/master/knnimpute/few_observed_entries.py,并查看了代码。但是,我无法弄清楚它是如何工作的。

有人能否请解释一下,在那里knnimpute是如何工作的?这里的距离计算是如何工作的?


1
最常用的是欧几里德距离,但也有其他选择可供使用。 - undefined
@AlexW:欧几里得距离指的是什么?是指与所讨论的数据观测值以及其他相应数据观测值之间的距离,但只考虑那些在两个观测值中都可用的特征 - 因此每个观测值比较时特征会发生变化。这段代码中哪里有相关内容? - undefined
1个回答

1
以下内容仅适用于Scikit-Learn Python库中的KNNImpute函数。 文档:https://scikit-learn.org/stable/modules/generated/sklearn.impute.KNNImputer.html 参数“metric”的默认值为“nan_euclidian”。可以在此处找到文档:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.nan_euclidean_distances.html 直观地说,“nan-euclidian”距离计算标准欧几里得距离(如果可能),并在任一观测值缺失时将结果线性缩放以补偿缺失条目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接