Kmeans代码实现

本章会介绍如何用py实现Kmeans模型

导入相关的库

from sklearn.cluster import KMeans # 聚类的API,采用指定质心来分簇
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.metrics import calinski_harabasz_score # 评价指标,值越大,聚类效果越好

一、准备数据集

#make_blobs是 scikit-learn 内置的数据集生成函数,用来自动生成多簇的模拟二维 / 多维样本数据
# 参1:样本数量;参2:样本特征数量(2列);参3:样本标签数量,也可以用列表传入每个簇的中心;参4:标准差;参5:随机种子
x,y = make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[0,0],[1,1],[2,2]],cluster_std=1,random_state=0)
print(x) #x是特征
print(y) #y是属于第几簇

二、绘制上述的图形

# 参1:横坐标;参2:纵坐标;参3:颜色
plt.scatter(x[:,0],x[:,1])
plt.show()

三、创建kMeans对象

# 参1:聚类数量;参2:随机种子
estimator = KMeans(n_clusters=4,random_state=23) #这里的随机性是随机选择质心造成的

四、训练模型和预测

y_pred = estimator.fit_predict(x)

五、绘制预测结果

plt.scatter(x[:,0],x[:,1],c=y_pred) #c = color;传入一维数组(你这里是 y_pred):数组里每个数字对应一个点的颜色,相同数字用同一种颜色。
plt.show()

六、评价指标

print(f'评价指标(评分):{calinski_harabasz_score(x,y_pred)}')#越大越好
posted @ 2026-06-27 00:05  王新文  阅读(5)  评论(0)    收藏  举报