我刚开始了解K近邻,并且很难理解为什么需要标准化。通读后,我碰到一段话说
当以不同的方式测量训练数据中的自变量时 单位,在计算之前标准化变量很重要 距离。例如,如果一个变量基于以厘米为单位的高度,则 另一种是基于以公斤为单位的重量,那么身高将对 距离计算。
由于K最近邻居只是距离的比较,所以变量之一的值是否在较大范围内,这是很重要的,这为什么很重要。
此外,标准化对这些值做了什么?公式之一是通过Xs = (X-mean)/(max-min)
实现的
这样的公式从何而来,它的真正作用是什么?希望有人可以给我一个简单的解释,或者给我一个指向网站或书籍的链接,以简单的方式向初学者解释。
我不确定为什么要暂停使用此问题,因为我想使用python实现该算法,但只需要先了解它的工作原理即可。如果这不是一个合适的网站,请告知我可以在哪里询问,因为我已经呆了一天,但我确定这里有人可以回答。谢谢
答案 0 :(得分:2)
为什么其中一个变量的值范围较大
对于聚类算法,如果不对数据进行标准化,则范围较大的值将对确定点所属的聚类时使用的距离产生更大的影响。
这是一个视觉示例:
我们有一些输入数据。
x = [0.95, 1, 1.05, 3.95, 4, 4.05]
y = [150, 100, 50, 450, 400, 350]
仅看一眼,很明显,一个点到它的邻居的距离主要由它在y轴上的距离组成,所以像K-NN这样的东西基本上可以赋予该特征所有权重,以决定一个点的聚类属于。
当我们通过您的公式Xs = (X-mean)/(max-min)
放置数据集
数据集变为
x = [-0.5000000000000002, -0.4838709677419357, -0.4677419354838712, 0.46774193548387094, 0.48387096774193544, 0.49999999999999983]
y = [-0.25, -0.375, -0.5, 0.5, 0.375, 0.25]
现在您可以看到群集被x和y值分隔。