在 Z 分数归一化数据上应用 K 均值聚类

Applying K-means clustering on Z-score Normalized Data

我一直在努力了解如何将 k 均值聚类应用于公司列表的一小组数据。

给出了均值和标准差,以便我可以确定归一化数据。

比如我有以下的:

根据我对 k 均值聚类的理解,我必须随机找到质心,其中 k = 3。我必须不断调整质心位置,直到不能再移动为止,即数据在之后保持不变达到一定的结果。

我在将这些过程应用于我的数据集时遇到困难。我已经观看并搜索了许多有关如何逐步完成此操作的示例,但我没有取得任何成功让我理解。

基本上我想做的是在每次调整质心时显示一个散点图。

我认为我必须使用欧氏距离算法计算两个数据项之间的距离,但这是否意味着 z-score sales 和 z-score fuel 之间的距离,或者什么?这就是为什么我迷路了,即使在我阅读了大约十几个 powerpoint 并观看了多个视频之后。

这似乎是我遇到的最好的例子,但即便如此,由于我的例子与介绍的例子略有不同,我仍然有点迷茫:http://www.indiana.edu/~dll/Q530/Q530_kk.pdf

我取得的最大进步是遇到了各种数据挖掘软件,例如 WEKA、Orange 以及各种 Excel 插件,例如 XLMiner 等。但是,它们似乎提供了最终结果,而不是到达那里所需的程序。

感谢任何帮助。如果需要更多信息,请告诉我。

谢谢。

编辑:我找到了更多的解决方案,我认为我应该添加到事件中,以防有人遇到同样的问题。

1) 我使用此视频中提到的 Excel 公式计算了欧氏距离:http://www.lynda.com/Excel-tutorials/Calculating-distance-centroid/165438/175003-4.html


公式如下所示:=SQRT((B28-$B)^2+(C28-$C)^2) 请记住,每个单元格代表您的数据所在的位置。

在这种情况下,我的细胞列在此处的图像中:http://i.imgur.com/W44km64.png

这给了我以下 table:http://i.imgur.com/miTiVj5.png


您的流程是正确的。就个人而言,我会将您的数据视为 2D,只是销售和燃料成本的 (x,y)...尽管您可以使用所有 4 个点,而只使用 4D 点。

第 1 步:选择随机中心(其中 3 个 c_1、c_2、c_3),或者拆分数据分为 3 个随机簇。如果您将数据随机分成 3 个簇,则计算每个簇中所有点的平均值。这三个手段成为三个中心。 (这里的意思是,我指的是每个坐标的平均值...将它们视为向量并对向量进行平均。)

步骤 2:每个中心代表三个聚类之一。对于每个点,计算到每个中心的距离(这可以是欧几里得距离,或任何其他距离度量)。每个点都被移动到中心最近的集群中。 IE。如果点 i 最接近中心 j,那么无论我在哪个聚类点,它都会移动到聚类 j。跟踪是否有任何点移动到新的集群。这将用作步骤 3 中停止条件的一部分。

第 3 步:在所有点都移动到离它们最近的集群后,通过对每个集群中的所有点进行平均来重新计算中心。然后,返回到 2 并重复,直到没有点改变它们所在的簇。