使用 SciPy 探索层次聚类与树状图

在本文中,我们将学习如何使用 Python 中的 Scipy 模块来实现层次聚类树状图。首先,让我们讨论一些相关的基础概念。

层次聚类需要创建具有从上到下预定顺序的聚类。它是一种无监督机器学习算法,用于对未标记的数据点进行聚类。

#### 如何执行?

  • 在开始时,每个数据点都应被视为一个独立的簇。
  • 将开始时的簇数量记为 K。
  • 通过组合两个最近的数据点形成一个簇,从而得到 K-1 个簇。
  • 通过组合两个距离最近的簇形成更多的簇,从而得到 K-2 个簇。
  • 重复上述四个步骤,直到创建出一个单一的大簇。
  • 一旦创建了簇,就使用树状图将其划分为多个簇。

#### 层次聚类的类型

1. 分裂聚类

分裂聚类,也称为自顶向下聚类方法,将所有观察结果分配给单个簇,然后将该簇划分为两个最不相似的簇。

2. 凝聚聚类

在凝聚或自底向上的聚类方法中,每个观察结果都被分配给其自己的簇。

#### 算法

1. 单链接

单链接聚类通常产生的簇是将个体顺序添加到单个组中。两个簇之间的距离定义为它们两个最近数据点之间的距离。

L(a , b) = min(D(xai , xbj))

!image

2. 全链接

全链接聚类通常产生的簇是分离良好且紧凑的。两个簇之间的距离定义为每个簇中两个数据点之间的最长距离。

L(a , b) = max(D(xai , xbj))

!image

3. 平均距离

简单平均算法将簇之间的距离定义为每个成员之间的平均距离,并进行加权,使得两个簇对最终结果具有相等的影响。

L(a , b) = Tab / ( Na * Nb)
**Tab**: 两个簇之间所有成对距离的总和。
**Na and Nb**: 分别为簇 a 和 b 的大小。

!image

树状图是一种用于可视化簇之间关系的树状图。树状图中垂直线的距离越长,这些簇之间的距离就越远。解释树状图的关键在于专注于任何两个对象连接在一起的高度。

树状图示例:

假设我们有六个簇:P、Q、R、S、T 和 U。散点图上显示的这六个观察结果的聚类层次树状图如下:

!image根据给定散点图绘制的树状图

树状图的组成部分:

!image树状图的组成部分

  • 树状图的分支被称为进化枝。这些进化枝根据它们的相似或不同程度进行排列。
  • 树状图的每个进化枝都有一个或多个叶子。P、Q、R、S、T 和 U 是树状图的叶子:
  • 三叶:P, Q, R
  • 二叶:S, T
  • 单叶:U

实现层次聚类和绘制树状图

为了实现层次聚类并绘制树状图,我们将使用以下几种方法:

  • hierarchy 模块 提供了层次和凝聚聚类的函数。
  • 为了执行层次聚类,我们使用 scipy.cluster.hierarchy.linkage 函数。该函数的参数包括:

> 语法: scipy.cluster.hierarchy.linkage(ndarray , method , metric , optimal_ordering)

  • 为了将层次聚类绘制为树状图,我们使用 scipy.cluster.hierarchy.dendrogram 函数。

> 语法: scipy.cluster.hierarchy.dendrogram(Z , p , truncatemode , colorthreshold , getleaves , orientation , labels , countsort , distancesort , showleafcounts , noplot , nolabels , leaffontsize , leafrotation , leaflabelfunc , showcontracted , linkcolorfunc , ax , abovethreshold_color)

示例 1:标准树状图

Python


“

Python program to plot the hierarchical

clustering dendrogram using SciPy

Import the python libraries

import numpy as np

from scipy.cluster import hierarchy

import matplotlib.pyplot as plt

Create an array

x = np

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/50420.html
点赞
0.00 平均评分 (0% 分数) - 0 票