SciPy - average() 方法
SciPy average() 方法用于对距离矩阵执行算术平均数任务。在数据分析中,此方法可帮助我们从数据点创建聚类层次结构。
此方法将两个聚类之间的距离视为所有数据点对之间的平均距离,其中一个点来自第一个聚类,另一个点来自第二个聚类。
语法
以下是 SciPy average() 方法的语法 −
average(y)
参数
此方法接受单个参数 −
- y:此参数存储数组矩阵的距离。
返回值
此方法返回链接矩阵(结果)。
示例1
以下是 SciPy average() 方法执行距离矩阵的任务。
import numpy as np
from scipy.cluster.hierarchy import average, dendrogram
import matplotlib.pyplot as plt
# 距离矩阵
y = np.array([0.6, 0.2, 0.3, 0.5, 0.4, 0.8])
# 执行平均链接聚类
result = average(y)
# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Average 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 average, dendrogram
import matplotlib.pyplot as plt
# 生成随机数据
data = np.random.rand(4, 2)
# 计算距离矩阵
y = pdist(data, metric='euclidean')
#平均链接聚类
result = average(result)
# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(Z)
plt.title('Dendrogram - Average Linkage on Random Data')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()
输出
上述代码产生以下结果 −
示例 3
为了获得平均聚类链接,它使用 dendrogram() 可视化数据并生成预期结果。这里,我们将度量类型称为"cityblock"。
import numpy as np
from scipy.spatial.distance import pdist
from scipy.cluster.hierarchy import average, dendrogram
import matplotlib.pyplot as plt
# 样本数据
data = np.array([[1, 5], [2, 4], [3, 6], [4, 8]])
# 使用自定义度量计算距离矩阵
y = pdist(data, metric='cityblock')
# 平均链接聚类
result = average(y)
# 绘制树状图
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Average Linkage with Cityblock Distance')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()
输出
上述代码产生以下结果 −

scipy_reference.html