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

# Distance matrix
y = np.array([0.6, 0.2, 0.3, 0.5, 0.4, 0.8])

# Perform average linkage clustering
result = average(y)

# Plot the dendrogram
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Average Linkage')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

以上代码会产生以下结果 -

scipy_complete_method_one

示例 2

下面的示例对随机数据集执行平均连锁聚类任务。

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

# generate random data
data = np.random.rand(4, 2)

# calculate the distance matrix
y = pdist(data, metric='euclidean')

# average linkage clustering
result = average(result)

# plot the dendrogram
plt.figure(figsize=(6, 4))
dendrogram(Z)
plt.title('Dendrogram - Average Linkage on Random Data')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

以上代码会产生以下结果 -

scipy_complete_method_two

示例 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

# sample data
data = np.array([[1, 5], [2, 4], [3, 6], [4, 8]])

# calculate the distance matrix using a custom metric
y = pdist(data, metric='cityblock')

# average linkage clustering
result = average(y)

# Plot the dendrogram
plt.figure(figsize=(6, 4))
dendrogram(result)
plt.title('Dendrogram - Average Linkage with Cityblock Distance')
plt.xlabel('indexes')
plt.ylabel('Distance')
plt.show()

输出

以上代码会产生以下结果 -

scipy_complete_method_three
scipy_reference.htm
广告