SciPy - single() 方法

SciPy single() 方法在压缩矩阵上执行单一/最小/最近链接任务。此方法的用途是定义两个簇之间的距离,如两个不同点之间的最短距离。

数据科学领域,我们使用此方法进行簇分析。它用于识别数据模式、分组项目和异常检测。

语法

以下是 SciPy single() 方法的语法 −

single(y)

参数

此函数仅接受单个参数 −

  • y:此变量在方法 single() 中被接受为参数,该方法存储用于数据绘图的列表数组整数。

返回值

此方法返回链接矩阵(结果)。

示例 1

以下是 SciPy single() 方法通过绘制数据点来说明单链接任务。

import numpy as np
from scipy.cluster.hierarchy import single, dendrogram
import matplotlib.pyplot as plt

# 距离矩阵
y = np.array([0.5, 0.2, 0.3, 0.4, 0.8, 0.6])

# 单链接聚类
result = single(y)

# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Single Linkage')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

上述代码产生以下结果 −

scipy_single_method_one

示例 2

下面的示例演示了对随机数据进行单链接聚类的任务。

import numpy as np
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import single, dendrogram
import matplotlib.pyplot as plt

# 生成随机数据
data = np.random.rand(5, 2)

# 计算距离矩阵
y = pdist(data, metric='euclidean')

# 单链接聚类
result = single(y)

# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Single Linkage on Random Data')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

上述代码产生以下结果 −

scipy_single_method_two

示例 3

在此示例中,我们使用度量类型为 cityblock 来计算给定数据集的距离矩阵并利用单链接聚类。然后我们使用 dendogram() 方法,该方法有助于绘制和可视化聚类。

import numpy as np
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import single, dendrogram
import matplotlib.pyplot as plt

# 给定数据
data = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])

# 使用自定义度量计算距离矩阵
y = pdist(data, metric='cityblock')

# 单链接聚类
result = single(y)

# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Single Linkage with Cityblock Distance')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

上述代码产生以下结果 −

scipy_single_method_three

scipy_reference.html