knnimpute 是如何工作的?
Posted
技术标签:
【中文标题】knnimpute 是如何工作的?【英文标题】:How does knnimpute work? 【发布时间】:2017-07-22 17:20:21 【问题描述】:来自https://***.com/a/35684975/4533188,我知道 K-Nearest Neighbor Imputation 的工作方式如下:
-
对于当前观测,获取到所有其他观测的距离。
对于当前观测值中的每个缺失值,考虑所有那些在相关特征中没有缺失值的最近的 k 个观测值。
根据这些观察的特征值:计算平均值(或一些类似的统计数据) - 这是用于插补的值。
关键步骤是 1:如果不是所有值都可用,我们如何计算距离?上面的帖子指向Heterogeneous Euclidean-Overlap Metric。但是我对fancyimpute 的knn-imputation 的实现很感兴趣。我将其追溯到https://github.com/hammerlab/knnimpute,更具体地说是https://github.com/hammerlab/knnimpute/blob/master/knnimpute/few_observed_entries.py,然后我查看了代码。但是我无法弄清楚它是如何工作的。
有人可以向我解释一下knnimpute
在那里的工作原理吗?这里的距离计算是如何工作的?
【问题讨论】:
最常见的欧几里得距离,但也有其他选择。 @AlexW:欧几里得距离到底是什么?在有问题的数据观察和相应的其他数据观察中,但只采用两个观察中可用的那些特征 - 因此每次观察比较的特征都在变化?代码在哪里? alexwhitworth/imputation 【参考方案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”距离会在可能的情况下计算标准欧几里德距离(并且在两个观测值都缺失的情况下不计算任何内容),并线性缩放结果以补偿缺失的条目。
【讨论】:
以上是关于knnimpute 是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章