我一直在努力了解如何将k-means聚类应用于公司列表的一小组数据。
给出均值和标准差,以便我可以确定标准化数据。
例如,我有以下内容:
根据我对k-means聚类的理解,我必须随机找到质心,其中k = 3.我必须不断调整质心位置,直到不再有可能的运动,即数据保持不变结果得到满足。
我无法将这些程序应用于我的数据集。我一步一步地观察并搜索了许多关于如何实现这一目标的例子,但我没有任何成功让我理解。
基本上我想要做的是在每次调整到质心时显示散点图。
我认为我必须使用欧几里德距离算法计算两个数据项之间的距离,但这是否意味着z得分销售与z得分燃料之间的距离,或者是什么?这就是为什么我迷失了,即使我已经阅读了十几个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$52)^2+(C28-$C$52)^2)
请记住,每个单元格代表数据的包含位置。
在这种情况下,我的单元格列在此处的图片中:http://i.imgur.com/W44km64.png
这给了我下面的表格:http://i.imgur.com/miTiVj5.png
答案 0 :(得分:1)
你对这个过程是正确的。就个人而言,我将您的数据视为2D,只是(x,y)是销售和燃料成本......虽然您可以使用全部4而只是有4D点。
第1步:选择随机中心(其中3个为c_1,c_2,c_3),或将数据拆分为3个随机群集。如果将数据随机分成3个簇,则计算每个簇中所有点的平均值。这3个手段成为三个中心。 (这里的意思是,我的意思是每个坐标的平均值......将它们视为向量并平均向量。)
第2步:每个中心代表三个群集中的一个。对于每个点,计算到每个中心的距离(这可以是欧几里德距离,或任何其他距离度量)。每个点都移动到中心距离最近的聚类中。即如果点i最接近中心j,则无论我在哪个聚类点,它都会移动到聚类j。跟踪任何点是否移动到新群集。这将在步骤3中用作停止条件的一部分。
步骤3 :在所有点移动到离它们最近的群集之后,通过将每个群集中的所有点平均计算来重新计算中心。然后,返回2并重复,直到没有任何点改变它们所在的群集。