SciPy - complete() 方法
SciPy complete() 方法在压缩距离矩阵
上执行完整链接(最大点)的任务。压缩矩阵本身是一个数组,其中包含用于处理数组的各种方法的集合。此外,它将两个簇之间的距离定义为任意两个点之间的最大距离(例如第一个簇中的单个数据点和第二个簇中的任意单个数据点)。
语法
以下是 SciPy complete() 方法的语法 −
complete(y)
参数
此方法接受单个参数 −
- y:此参数存储数组矩阵的距离。
返回值
此方法返回链接矩阵(结果)。
示例 1
以下是SciPy complete() 方法展示了如何在给定距离矩阵上执行完整链接聚类并使用 dendrogram() 可视化输出。
import numpy as np from scipy.cluster.hierarchy import complete, dendrogram import matplotlib.pyplot as plt # 距离矩阵 y = np.array([0.5, 0.2, 0.3, 0.3, 0.8, 0.6]) # 完整链接聚类 result = complete(y) # 绘制树状图 plt.figure(figsize=(6, 4)) dendrogram(result) plt.title('Dendrogram - Complete Linkage') plt.xlabel('indexes') plt.ylabel('Distance') plt.show()
输出
上述代码产生以下结果 −

示例 2
下面的示例给出了一个随机数据集,允许操作距离矩阵并执行完整的链接聚类。然后,它使用方法 dendrogram () 来可视化层次聚类。
import numpy as np from scipy.spatial.distance import pdist from scipy.cluster.hierarchy import complete, dendrogram import matplotlib.pyplot as plt # 随机数据 data = np.random.rand(6, 2) # 计算距离矩阵 y = pdist(data, metric='euclidean') # 完全链接聚类 result = complete(y) # 绘制树状图 plt.figure(figsize=(6, 4)) dendrogram(result) plt.title('Dendrogram - Complete Linkage on Random Data') plt.xlabel('indexes') plt.ylabel('Distance') plt.show()
输出
上述代码产生以下结果 −

示例 3
在此示例中,我们说明了使用自定义距离度量进行完全链接聚类的任务。
import numpy as np from scipy.spatial.distance import pdist from scipy.cluster.hierarchy import complete, dendrogram import matplotlib.pyplot as plt # 样本数据 data = np.array([[1, 3], [2, 4], [8, 6], [7, 8]]) # 计算使用自定义度量的距离矩阵 y = pdist(data, metric='cityblock') # 完整链接聚类 result = complete(y) # 绘制树状图 plt.figure(figsize=(6, 4)) dendrogram(result) plt.title('Dendrogram - Complete Linkage with Cityblock Distance') plt.xlabel('Sample index') plt.ylabel('Distance') plt.show()
输出
上述代码产生以下结果 −
