在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
方法进行层次聚类。然后将数据点分配到指定数量的簇中,并将聚类结果可视化显示出来。您也可以尝试使用其他聚类方法和参数来执行不同的聚类分析。