在SciPy中执行聚类分析通常使用scipy.cluster
模块中的hierarchy
子模块来实现。例如,可以使用linkage
函数来进行层次聚类,使用fcluster
函数来将数据点分配到簇中。
以下是一个示例代码,演示如何使用SciPy执行层次聚类分析:
import numpy as np
from scipy.cluster.hierarchy import linkage, fcluster
import matplotlib.pyplot as plt
# 生成一些示例数据
np.random.seed(0)
X = np.random.rand(10, 2)
# 执行层次聚类
Z = linkage(X, method='ward') # 使用ward方法进行聚类
# 将数据点分配到簇中
k = 2 # 指定聚类的簇数
clusters = fcluster(Z, k, criterion='maxclust')
# 可视化聚类结果
plt.scatter(X[:,0], X[:,1], c=clusters, cmap='viridis')
plt.show()
在这个示例中,我们生成了一些示例数据,并使用ward
方法进行层次聚类。然后将数据点分配到指定数量的簇中,并将聚类结果可视化显示出来。您也可以尝试使用其他聚类方法和参数来执行不同的聚类分析。