为什么需要在KNN中缩放数据


15

有人可以向我解释为什么在使用K个最近邻居时为什么需要规范化数据。

我已经尝试过查找,但是似乎还是无法理解。

我找到以下链接:

https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715

但是在这种解释中,我不明白为什么其中一项功能的较大范围会影响预测。


我认为从主题的角度来看,规范化是合理的。本质上,重要的是定义点之间距离的因素。您必须找到一个方便的距离算术定义,以反映距离的主题定义。根据我有限的经验,我已经根据主题考虑在某些而非全部方向上进行了标准化。
理查德·哈迪

1
有关说明性示例,请参阅stats.stackexchange.com/questions/140711
ub

Answers:


27

k近邻算法基于给定测试点的“ k”个最近样本的类成员资格,基于多数投票。样本的接近度通常基于欧几里得距离。

考虑一个简单的两类分类问题,其中选择一个1类样本(黑色)及其最近的10个邻居(绿色填充)。在第一个图中,未对数据进行归一化,而在第二个图中,对数据进行了归一化。

数据不规范 归一化的数据

注意,如果不进行归一化,所有最近的邻居如何在轴方向上以较小的范围对齐,即导致错误的分类。x1

规范化解决了这个问题!


1
这个答案是完全正确的,但是我担心由于涉及的变形,插图可能具有欺骗性。通过同时绘制两个点,使每个点的两个轴处于相同比例,可能会更好。
ub

1
我发现很难将两个图的所有数据点以相同的比例进行拟合。因此,我在笔记中提到轴的比例不同。
kedarps

1
这个困难实际上就是您的回应重点!克服它的一种方法是不使用如此极端的比例尺。比例差异为5:1,而不是1000:1,仍然可以很好地说明您的观点。另一种方法是忠实地绘制图片:顶部的散点图似乎是垂直的点线。
ub

2
@whuber,我误解了您的第一条评论。修复了剧情,希望现在会更好!
kedarps

1
@Undertherainbow那是正确的!
kedarps

6

假设您有一个数据集(m个“示例”乘以n个“特征”),除一个特征维外,所有特征维的值都严格在0到1之间,而一个特征维的值范围在-1000000到1000000之间。在成对的“示例”之间,范围在0到1之间的特征维的值可能变得无用,并且算法将实质上依赖于其值实质上更大的单个维。只要算出一些示例欧几里得距离计算,您就可以了解比例如何影响最近的邻居计算。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.