如何利用Python 进行K-means聚类分析?

 时间:2026-02-13 08:38:23

1、利用pandas导入数据集。这里有两个变量,假设学生的数学与英语两个成绩如下:

import pandas as pd

df=pd.DataFrame({'math':[98,78,54,89,24,60,98,44,96,90],'english':[92,56,90,57,46,75,76,87,91,88]})

如何利用Python 进行K-means聚类分析?

2、导入机器学习报的K-means分析工具。

from sklearn.cluster import KMeans

如何利用Python 进行K-means聚类分析?

3、处理训练集。假设数据中有分类结果,可以将分类结果作为目标变量。与逻辑回归不同,在没有y的情况下,直接用X变量集也可以进行K-means训练。

X=df.ix[:,['math','english']]

如何利用Python 进行K-means聚类分析?

4、建立模型。n_clusters参数用来设置分类个数,即K值,这里表示将样本分为两类。

clf_KMeans=KMeans(n_clusters=2)

其他参数为默认值,可以根据实际情况进行调整。

如何利用Python 进行K-means聚类分析?

5、模型训练。得到预测值。

cluster=clf_KMeans.fit_predict(X)

print(cluster)

从结果中可以看到,样本被分为了两类。

如何利用Python 进行K-means聚类分析?

6、根据聚类结果绘制散点图形。

plt.figure()

plt.scatter(X['math'], X['english'],c=cluster)

plt.title("K-means test")

plt.show()

由于本例样本较少,分类个数较少,聚类效果不是很明显。

如何利用Python 进行K-means聚类分析?

7、增加聚类个数。并绘制图形。

cluster2=KMeans(n_clusters=4).fit_predict(X)

plt.figure(1)

plt.scatter(X['math'], X['english'],c=cluster2)

plt.title("K-means test")

plt.show()

从图形上看,比2类时效果好很多。当然,在样本量足够的情况下,进行聚类分析,要根据实际情况或聚类效果选择K值。

如何利用Python 进行K-means聚类分析?

  • 肥牛洋葱土豆的做法
  • 小动物的尾巴有什么特点和作用#校园分享#
  • 3+3等于几
  • 10月4号上班工资怎么算
  • 简笔画--卡通蜻蜓的画法
  • 热门搜索
    室内设计需要学什么 什么是滥情 水管漏水用什么胶 红糖姜水什么时候喝好 520送给男友什么礼物 征求志愿是什么意思 蔚为壮观的意思 崩塌的意思 tree是什么意思 room是什么意思