首页 理论教育 层次聚类方法:概念和应用

层次聚类方法:概念和应用

时间:2023-06-27 理论教育 版权反馈
【摘要】:例4_6随机生成300个点,运用层次聚类的算法分别实现聚为3类和聚为4类的数据分析。图4-12聚为3类的运行结果图4-13聚为4类的运行结果

层次聚类方法:概念和应用

1.AGNES算法原理

AGNES是一种单连接凝聚层次聚类方法,采用自底向上的方法,先将每个样本看成一个簇,然后每次对距离最短的两个簇进行合并,不断重复,直到达到预设的聚类簇个数。

使用AGNES算法对下面数据集进行聚类,以单连接计算簇间的距离。刚开始共有5个簇:C1={A},C2={B},C3={C},C4={D},C5={E}。初始簇间的距离如表4-5所示。

表4-5 初始簇间的距离

第1步,簇C1和簇C2的距离最近,将两者合并,得到新的簇结构:C1={A,B},C2={C},C3={D},C4={E}。合并后的簇间距离如表4-6所示。

表4-6 第1步合并后簇间距离

第2步,接下来簇C2和簇C3的距离最近,将两者合并,得到新的簇结构:C1={A,B},C2={C,D},C3={E}。合并后的簇间距离如表4-7所示。

表4-7 第2步合并后簇间距离

第3步,接下来簇C2和簇C3的距离最近,将两者合并,得到新的簇结构:C1={A,B},C2={C,D,E}。合并后的簇间距离如表4-8所示。

表4-8 第3步合并后簇间距离

续表

第4步,最后簇C1和簇C2的距离最近,将两者合并,得到新的簇结构:C1={A,B,C,D,E}。AGNES聚类过程示意如图4-11所示。

图4-11 AGNES聚类过程示意

2.AGNES算法案例

扩展库sklearn.cluster中提供了分层聚类算法Agglomerative Clustering,其构造方法的语法格式如下:(www.xing528.com)

def__init__(self,n_clusters=2,affinity='euclidean',memory=None,connectivity=None,compute_full_tree='auto',linkage='ward',pooling_func=<functionmean>)

常用参数如表4-9所示,常用方法如表4-10所示。

表4-9 Agglomerative Clustering类常用参数

表4-10 Agglomerative Clustering类常用方法

下面用代码演示分层聚类的用法,在扩展库sklearn.cluster中的函数make_blobs()生成符合各向同性高斯分布的散点测试数据及其标签,然后对数据进行聚类和可视化。其中函数make_blobs()的语法格式如下:

make_blobs(n_samples=100,n_features=2,centers=None,cluster_std=1.0,center_box=(-10.0,10.0),shuffle=True,random_state=None)

make_blobs()参数如表4-11所示。

表4-11 make_blobs()类常用参数

下面是用代码演示sklearn.cluster中Agglomerative Clustering聚类算法的基本步骤。例4_6随机生成300个点,运用层次聚类的算法分别实现聚为3类和聚为4类的数据分析。

例4_6_Agglomerative Clustering.py

运行结果聚为3类的如图4-12所示,聚为4类的如图4-13所示。

图4-12 聚为3类的运行结果

图4-13 聚为4类的运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈