聚类方法之:KMeans聚类分析
书接上回,在上一篇博客中完成了数据的降维分析,这里在降维后的基础上继续进行聚类分析,使用前2个PC进行KMeans据类并可视化。
from sklearn.cluster import KMeans
from collections import Counter
# 语言定义颜色和画布
colors = ['b', 'g', 'r', 'y', 'k', 'c', 'm', 'chartreuse']
plt.figure(figsize=(10,6))
# 这里k取2到6分别看聚类效果
for i in range(2,7):
# 实例化对象
kmeans = KMeans(n_clusters=i,random_state=0,n_init=10)
# 聚类
clus = kmeans.fit(pca_data)
# 数据各个类别的数量
print(i,Counter(clus.labels_))
# 对应颜色和类别
color = [colors[i] for i in clus.labels_]
plt.subplot(2,3,i-1)
plt.scatter(pca_data['pca1'],pca_data['pca2'],color=color)
plt.title('{} clusters'.format(str(i)))
plt.grid()
类别结果即各个K值下的聚类图:
2 Counter({0: 395, 1: 45})
3 Counter({1: 393, 0: 44, 2: 3})
4 Counter({0: 325, 3: 101, 1: 11, 2: 3})
5 Counter({2: 267, 0: 94, 3: 65, 1: 11, 4: 3})
6 Counter({4: 238, 0: 105, 1: 61, 5: 28, 2: 5, 3: 3})
作者:天使不设防
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.