knnimpute 是如何工作的?

How does knnimpute work?

从 我得到 K-最近邻插补是这样工作的:

  1. 对于当前观测,获取到所有其他观测的距离。
  2. 对于当前观测值中的每个缺失值,考虑所有那些 k 个最近的观测值,这些观测值在相关特征中没有缺失值。
  3. 根据这些观察的那些特征值:计算平均值(或一些类似的统计数据)- 这是用于插补的值。

关键步骤1:如果不是所有值都可用,我们如何计算距离?上面的 post 指向 Heterogeneous Euclidean-Overlap Metric. However I am interested in the implementation of knn-imputation of fancyimpute. I tracked it back to https://github.com/hammerlab/knnimpute, more specifically https://github.com/hammerlab/knnimpute/blob/master/knnimpute/few_observed_entries.py 我查看了代码。但是我无法弄清楚它是如何工作的。

有人可以向我解释一下 knnimpute 是如何工作的吗?这里的距离计算是如何工作的?

以下是 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

直觉上,“南欧”距离会尽可能计算标准欧几里德距离(如果两个观测值中的任何一个都缺失,则不计算),并线性缩放结果以补偿缺失的条目。