banner

永不过时的K-Means算法

作者: afenxi来源: afenxi时间:2016-12-21 15:53:090

摘要:众所周知,数据挖掘算法并非十全十美,在某些情况下他们也会失效。 使用 K 均值算法(K-Means)时就可能会出现这种情况,当然此时你可以尝试一下另一种方法—— K 中心聚类算法(K-Medoids),也许效果会更好。

引言 永不过时的K-Means算法-数据分析网

众所周知,数据挖掘算法并非十全十美,在某些情况下他们也会失效。 使用 K 均值算法(K-Means)时就可能会出现这种情况,当然此时你可以尝试一下另一种方法—— K 中心聚类算法(K-Medoids),也许效果会更好。

在该网站之前的文章《揭开机器学习的面纱》中,已经指出, K 均值算法用于聚类时效果良好,而且在数据挖掘和机器学习领域,它也有着重要的地位。Psanchezcri 就曾在他的文章《将 K 均值方法用于金融时序回报率聚类》中,将 K 均值算法用于分析金融时间序列的趋势。

然而,即使在网络上有关算法的文档浩如烟海的情况下,关于机器学习算法有时会失效的讨论却并不多见。

因此,本文借由一个金融案例来反映这个问题。

思路

1)首先,我们在欧洲斯托克600指数的成分股中选择三组共6只股票(在三个不同的部门中各选两只):

金融部门: 西班牙毕尔巴鄂比斯开银行 & 桑坦德银行 非必需消费品: 法国酩悦·轩尼诗-路易·威登 & 迪奥 能源部门: 英国石油公司 & 锡尼什港能源公司

2)搜集数据,并绘出在2013/01/01至2015/12/31期间这六只股票的价格走势曲线。如下所示:永不过时的K-Means算法-数据分析网

3)选择日回报率作为计算指标,我们算出三组股票序列的相关距离。然后通过距离矩阵降维的方法,在二维欧氏空间中绘出每个点。

结果显示这六只股票可以按部门进行分类效果显著。下图以蓝色菱形点、绿色正方形点、红色圆点来标记六只股票,明显可以按部门分为三类:

永不过时的K-Means算法-数据分析网

4)最后,我们将 K 均值算法运用于距离矩阵,聚类目标预先设定分成3类。由于 K 均值算法是从随机点开始的,每次运行结果可能有所不同,本文我们预先设定运行这个算法15次,即产生15个结果。当然,我们希望得到聚类结果符合股票所属部门的实际情况。

结论

1)在约80%的聚类结果中,K 均值聚类算法取得了理想的结果,聚类结果与这六只股票所属部门相符,如下图所示:

永不过时的K-Means算法-数据分析网2)在剩下的20%的聚类结果中,算法则出现了聚类的错误。例如,下图中错将两个不同部门的四只股票聚为一类(图中蓝色菱形点和绿色正方形点),而将同一部门的两只股票分为两类(图中红色圆点):

永不过时的K-Means算法-数据分析网如果我们使用与之思想类似的 K 中心聚类算法,结果则可以达到100%的正确聚类率。这表明在聚类时,似乎使用重心会比用均值来衡量距离,效果更好。

原文链接: “K-Means never fails”, they said… 原文作者:Fjrodriguez2 译者:Vector

banner
看过还想看
可能还想看
热点推荐

永洪科技
致力于打造全球领先的数据技术厂商

申请试用
Copyright © 2012-2024开发者:北京永洪商智科技有限公司版本:V10.2
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限