如何利用Python 进行K-means聚类分析
1、利用pandas导入墙绅褡孛数据集。这里有两个变量,假设学生的数学与英语两个成绩如下:import pan颊俄岿髭das as pddf=pd.DataFrame({'math':[98,78,54,89,24,60,98,44,96,90],'english':[92,56,90,57,46,75,76,87,91,88]})
2、导入机器学习报的K-means分析工具。from sklearn.cluster import KMeans
3、处理训练集。假设数据中有分类结果,可以将分类结果作为目标变量。与逻辑回归不同,在没有y的情况下,直接用X变量集也可以进行K-means训练。X=df.ix[:,['math','english']]
4、建立模型。n_clusters参数用来设置分类个数,即K值,这里表示将样本分为两类。clf_KMeans=KMeans(n_clusters=2)其他参数为默认值,可以根据实际情况进行调整。
5、模型训练。得到预测值。cluster=clf_KMeans.fit_predict(X)print(cluster)从结果中可以看到,样本被分为了两类。
6、根据聚类结果绘制散点图形。plt.figure()plt.scatter(X['math'], X['english'],c=cluster)plt.title("K-means test")plt.show()由于本例样本较少,分类个数较少,聚类效果不是很明显。
7、增加聚类个数。并绘制图形。cluster2=KMeans(n_罕铞泱殳clusters=4).fit_predi艘早祓胂ct(X)plt.figure(1)plt.scatter(X['math'], X['english'],c=cluster2)plt.title("K-means test")plt.show()从图形上看,比2类时效果好很多。当然,在样本量足够的情况下,进行聚类分析,要根据实际情况或聚类效果选择K值。