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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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