基于K-Means聚类算法对NBA球员数据的聚类分析
来源:太阳城官网2024-05-30 08:04:21
直播信号:
聚类分析的研究成果主要集中在基于距离(或者称为基于相似度)的聚类方法,用距离来作为相似性度量的优点是十分直观,从我们对物体的识别角度来分析,同类的数据样本是相互靠近的,不同类样本应该相聚较远。K-Means聚类算法是划分聚类方法中最常用、最流行的经典算法,许多其他的算法都是K-Means聚类算法的变种。其主要思想是通过迭代过程将数据集划分为不同类别,使评价聚类性能的准则函数达到最优,使生成的每个聚类类内紧凑,类间独立。
本文介绍并实践了一种无监督的聚类算法——K-Means聚类,结合“簇内离差平方和拐点法”、“轮廓系数法”两种方法进行K值的选取。从虎扑上获取球员数据之后,使用K-Means算法对NBA球员数据集进行聚类,我们通过观察聚类的结果,把球员分成三种类别,可以对比球员的价值,在实际应用中可以作为参考,帮助球队进行人才的挑选。
使用pandas中的read_html函数读取虎扑体育网页中的球员数据表,代码如下
将结果写入本地文件players.csv,如下图所示
原始数据中命中率的格式为x%,需要进行标准化处理转化为数值形式,小数点后保留3位小数。
模型的构建主要包括两部分:
(1)根据所获数据集,对球员进行聚类分群;
(2)结合分类结果对球员状态进行分析,分析球员价值。
2.1球员聚类
最佳k值的确定
本文使用了两种常用的评估方法,用于确定最佳k值:“簇内离差平方和拐点法”、“轮廓系数法”。
① 拐点法:在不同的k值下计算簇内的离差平方和,然后通过可视化的方法找到“拐点”所对应的k值。
通过离差平方和的折线图我们能发现k值最好取在3、4、5之间,但还是很难通过观察找到最佳的k值。于是我们采用第二种方法(轮廓系数法)来进行k值的确定。
② 轮廓系数法:该方法综合考虑了簇的密集性与分散性两个信息,如果数据集被分割为理想的k个簇,那么对应的簇内样本会很密集,而簇间样本会很分散,轮廓系数的计算公式如下:
其中,a(i)体现了簇内的密集性,代表样本i与同簇内其他样本点距离的平均值;b(i)反映了簇间的分散性,其计算过程是:样本i与其他非同簇样本点距离的平均值,然后从平均值中挑选出最小值。
有关轮廓系数的计算,我们可以直接调用sklearn子模块metris中的函数silhouette_score。该函数接受的聚类簇数必须大于或等于2,下面基于该函数重新自定义一个函数,用于绘制不同k值下对应轮廓系数的折线图,具体代码如下所示:
观察不同k值轮廓系数折线图,我们能发现k&