与欧几里德距离实现混淆

数据挖掘 Python 数据挖掘
2022-03-04 03:32:51

我必须在这个有 29 列和 476 行的数据集上使用 python 从头开始​​实现 k 均值算法。对于所有这些不同的数据点,我很困惑如何计算质心和数据之间的距离,以确保数据在正确的集群中。我知道我必须使用欧几里得距离,但我不确定如何将它与这个数据集一起使用。我在网上看到的所有示例通常都只处理二维的。我需要有人向我解释我应该采取什么样的方法。这是数据集: 在此处输入图像描述

1个回答
  • 首先,如果您想考虑它们,您需要将分类列转换为数字(例如列)。
  • 您需要标准化您的功能,因为规模存在差异(例如列G对比大号ķ)
  • 您可能需要减少维度,因为 k-means 可能会陷入“维度诅咒”

其余的都很好。欧几里得距离可以推广到任意数量的维度。

(X1-X2)2+(是的1-是的2)2+(z1-z2)2+...

所以,当你计算你的 k-means 时,你会得到ķ把他们每个人都指向d方面 (d是列数)。然后对于每个数据点,您计算上面的数据点和中心的距离,即

(Xd一种一种-XCener)2+(是的d一种一种-是的Cener)2+(zd一种一种-zCener)2+...

Python 为您轻松完成。