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()
输出
上述代码产生以下结果 −

示例 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()
输出
上述代码产生以下结果 −

示例 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()
输出
上述代码产生以下结果 −
