简单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