KNNImpute的工作原理是什么?

https://stackoverflow.com/a/35684975/4533188 我了解到,K-最近邻填补法的工作原理如下:

  1. 对于当前观测值,计算到所有其他观测值的距离。
  2. 对于当前观测值中的每个缺失值,考虑那些在所讨论特征上没有缺失值的k个最近邻观测值。
  3. 从这些观测值的特征值中:计算均值(或类似的统计量)——这就是用于填补的数值。

关键步骤是第一步:如果不是所有值都可用,我们如何计算距离?上面的帖子指出了异质欧几里得-重叠度量。然而,我对fancyimpute中的knn填补法的实现感兴趣。我追溯到了https://github.com/hammerlab/knnimpute,更具体地说是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找到

直观上,”nan-euclidian”距离在可能的情况下计算标准的欧几里得距离(在任一观测值缺失时不计算),并线性缩放结果以补偿缺失的条目。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注