无监督学习——层次聚类详情

本文详细介绍了层次聚类的两种方法(凝聚和分裂),常用距离度量(欧氏、曼哈顿、余弦),以及sklearn中的AgglomerativeClustering工具。讨论了其优缺点,展示了如何通过实例和sklearn实现层次图可视化。
摘要由CSDN通过智能技术生成

一、层次聚类简介

层次聚类方法属于无监督学习,将数据集分成指定的聚类个数。
根据具体实现方法的不同,分为凝聚聚类(自底向上)、分裂聚类(自顶向下)
在这里插入图片描述

1、凝聚聚类(自底向上)

例如,AGNES,Agglomerative Nesting

算法步骤:

  1. 将每个样本点都看作一个独立的簇,
  2. 计算所有簇之间的距离,
  3. 找到距离最近的两个簇进行合并,,重复2,直到达到聚类个数或其他终止条件

2、分裂聚类(自顶向下)

例如,DIANA,Divisive Analysis

算法步骤:

  1. 将所有样本点都看作一个簇
  2. 计算簇中所有样本之间的距离
  3. 找到簇中距离最远的两个样本点i、j,并将其设置为两个新簇的中心点
  4. 对于原簇中剩余的所有点,计算其与i、j之间的距离,并将其划分到距离更近的那个点的簇中
  5. 重复2、3、4,直到达到指定簇数,或满足终止条件

二、距离

1、欧氏距离

2、曼哈顿距离

3、余弦距离

三、度量方法

1、最小距离

最小距离由两个簇的最近样本决定 => 单链接(single-linkage)算法

在这里插入图片描述

2、最大距离

最大距离由两个簇的最远样本决定 => 全链接(complete-linkage)算法

在这里插入图片描述

3、平均距离

平均距离由两个簇的所有样本共同决定 => 均链接(average-linkage)算法
在这里插入图片描述

4、均值距离

均值距离由两个簇的中心点之间的距离决定,其中,簇的中心点为其中所有样本点的平均值

在这里插入图片描述

四、 优缺点

优点

  1. 规则简单
  2. 可以发现样本点之间的层次关系

缺点

  1. 计算复杂度高
  2. 对异常点敏感
  3. 对异形样本点可能聚类效果不好

五、工具-sklearn

工具-sklearn
sklearn.cluster.AgglomerativeClustering(n_clusters=2, affinity=‘euclidean’, memory=None, connectivity=None, compute_full_tree=‘auto’, linkage=‘ward’, distance_threshold=None)

  • n_clusters:聚类簇数,默认为2
  • affinity:距离计算参数,默认为"euclidean"。可选参数包括l1、l2、“manhattan”, “cosine”,“precomputed”。
  • linkage: {“ward”, “complete”, “average”, “single”}, optional (default=”ward”)
    其中,
    “ward”将合并的聚类的方差最小化。
    “average”使用两个集合中每个观测值的距离的平均值。
    “complete”或“maximum”链接使用两个集合的所有观测值之间的最大距离。
    “single”使用两个集合的所有观测值之间的最小距离。

五、层次图可视化

from scipy.cluster.hierarchy import dendrogram, ward

linkage_matrix = ward(train_x)
dendrogram(linkage_matrix)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值