基于机器学习聚类算法寻找美国职业篮球联赛NBA中的超级强队
聚类算法
聚类算法是机器学习中经典的非监督学习算法之一,相比于分类算法,聚类不依赖预定义的样本标签,而是让算法通过对数据的学习从而找到其内部的规律,该算法对有相同特征的样本进行聚类,聚类的时候,我们并不关心某一类是什么,有一句话叫做“物以类聚,人以群分”。聚类,通俗地说,就是指将相似元素的聚集到一起作为一个类别。
聚类算法
k均值算法
在机器学习中聚类算法有很多,k均值算法是最经典的聚类算法,这个算法的目的就是要找到数据的分组,分组的数目由K指定。这个算法基于提供的特征,迭代地将数据分配个K个组别的其中一个。数据是基于数据相似性被聚类的,相似性度量是基于距离计算的,最典型的就是欧几里得距离。我们可以使用欧几里得距离计算给定两点之间的距离,公式如下:
欧几里得距离
我们可以将聚类算法的步骤总结为:
1.从集合D中随机选取k个元素,作为k个簇的各自的中心;
2.分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇;
3.根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有的元素各自维度的算术平均数;
4.将D中全部元素按照新的中心重新聚类;
5.重复第4步,直到聚类结果不再变化;
6.将结果输出。
K均值算法的执行过程
聚类算法寻找美国职业篮球联赛中的超级强队
我们知道在NBA中虽然无弱队,但是还是有档次划分的,比如有的球队是季后赛球队,而有的球队是摆烂球队,有的球队则是争冠球队,所以我们认为球队的实力是有类别的,只不过这个类别的定义相对模糊,我们将使用K-means算法对NBA中的球队进行聚类,然后看哪些球队是一个类别的。
NBA球队数据
如图所示是NBA联盟中近四年的30支球队的常规赛的胜场数,以及季后赛的胜场数,我们将其分别看为特征x1和特征x2,这样我们就有了训练集样本,下面我们使用k均值算法进行聚类,假如我们将所有样本分为5类,所以令k = 5,即将30支球队分成5个级别,最终k均值算法的结果为:
聚类结果
我们可以看到30支球队被分为5个类别,NBA联盟中的超级强队是骑士队和勇士队,而在当时在摆烂的球队是76人和湖人队,其它的球队分别属于其它的三个类别,我们可以将其定义为季后赛球队,以及弱队等等。
我们可以清楚的看到,我们使用k均值算法成功的将NBA联盟中的球队分为五个类别,我们可以看到骑士和勇士队一档,而76人和湖人队一档。这就是机器学习聚类算法在美国职业篮球联赛NBA中的超级强队中的应用。