简单KMEANS聚类实现

作者: 张叁疯_ | 来源:发表于2019-07-01 14:43 被阅读2次

简单KMEANS聚类实现

# 导入工具库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import MiniBatchKMeans,KMeans# 小批量的更新质心,而不是用所有的样本更新质心
from sklearn import metrics #数据簇生成器
from sklearn.datasets.samples_generator import make_blobs #样本生成器,球状簇

# 生成数据集
x,y = make_blobs(n_samples = 1000, n_features=2, centers=[[-1,1],[0,0],[1,1],[2,2]],
                 cluster_std = [0.4,0.2,0.2,0.2], random_state = 9)
#样本数,特征数,质心,标准差,指定一个随机状态:保证每次运行生成的散点一致

# 生成数据散点图
plt.scatter(x[:, 0], x[:, 1], marker = 'o')
plt.show()

使用Kmeans进行聚类,分别聚成234类

# 使用枚举的方法分别聚成2345类簇
for index, k in enumerate((2,3,4,5)):
    plt.subplot(2, 2, index+1)
    # 预测标签
    y_pred = MiniBatchKMeans(n_clusters = k, batch_size=200, random_state= 9).fit_predict(x)
    
    score = metrics.calinski_harabaz_score(x,y_pred)#最终聚类效果评分,CH系数
    
    plt.scatter(x[:, 0], x[:, 1], c=y_pred)# 显示聚类效果图
    
    plt.text(.99, .01, ('k = %d, score: %.2f' %(k, score)),
             transform = plt.gca().transAxes,size = 10,
             horizontalalignment = 'right')#显示格式化,规定以相同的格式显示
    
plt.show()





相关文章

网友评论

    本文标题:简单KMEANS聚类实现

    本文链接:https://www.haomeiwen.com/subject/twmgcctx.html