zoukankan      html  css  js  c++  java
  • python 凝聚聚类之树状图

    1、脚本

    # scikit-learn 没有绘制树状图的功能,需借助 SciPy 库完成
    import matplotlib.pyplot as plt
    from sklearn.datasets import make_blobs
    from scipy.cluster.hierarchy import dendrogram, ward
    
    
    # 生成模拟数据
    X, y = make_blobs(n_samples=13,
                      random_state=42
                     )
    
    # 在数据组 X 上应用 ward 聚类函数,返回聚类过程中所跨越距离的数组
    linkage_array = ward(X)
    # 绘制树状图
    dendrogram(linkage_array)
    
    # 标记数中划分为两个和三个簇的位置
    ax = plt.gca()
    bounds = ax.get_xbound()
    
    plt.plot(bounds,
             [27, 27], 
             '-.',
             c='y')
    plt.plot(bounds,
             [14, 14], 
             '-.',
             c='y'
            )
    
    plt.text(x=bounds[1],
             y=27,
             s=' two clusters',
             va='center',
             fontsize=15
            )
    
    # 添加文本注释
    plt.text(x=bounds[1],
             y=14, 
             s=' three clusters',
             va='center',
             fontsize=15
            )
    
    # 调整子区布局
    plt.subplots_adjust(left=0.1,
                        right=0.75,
                        top=0.9,
                        bottom=0.1
                       )
    
    
    plt.show()

    2、聚类过程的示意树状图

     

     

     3、按语

    此树状图的底部显示的是数据点,这些数据点作为叶节点最终形成一棵聚类树,每合并两个两个簇就生成一个父节点。

  • 相关阅读:
    iView
    JS
    JS
    JS
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/shanger/p/13021667.html
Copyright © 2011-2022 走看看