我正在尝试使用 KNN 包来估算我在数据框中的缺失值。我的数据框列具有不同的范围,即其中一些列的价值比其他列大得多。
我的理解是KNN算法使用欧几里得距离来确定最近邻。我的疑问是我是否应该在将数据提供给算法之前对其进行标准化,或者默认情况下是否应该这样做?
我正在尝试使用 KNN 包来估算我在数据框中的缺失值。我的数据框列具有不同的范围,即其中一些列的价值比其他列大得多。
我的理解是KNN算法使用欧几里得距离来确定最近邻。我的疑问是我是否应该在将数据提供给算法之前对其进行标准化,或者默认情况下是否应该这样做?
您可以在fancyimpute.knn.KNN
代码中的类中看到它采用一个属性,该属性normalizer
可以使用fit()
和transform()
方法设置为任何对象。
默认情况下,它设置为,None
因此您必须显式创建规范化器并将其提供给 KNN 类对象。