层次聚类是一种基于距离度量的聚类算法,通过逐步合并最相似的数据点或聚类来构建一个聚类树。Python中可以使用scikit-learn库中的AgglomerativeClustering来实现层次聚类算法。
以下是一个使用AgglomerativeClustering实现层次聚类的示例代码:
import numpy as np from sklearn.cluster import AgglomerativeClustering from sklearn.datasets import make_blobs import matplotlib.pyplot as plt # 生成随机数据 X, y = make_blobs(n_samples=100, centers=3, random_state=42) # 使用AgglomerativeClustering进行层次聚类 clustering = AgglomerativeClustering(n_clusters=3) clustering.fit(X) # 可视化聚类结果 plt.scatter(X[:, 0], X[:, 1], c=clustering.labels_, cmap='rainbow') plt.show()
在上面的示例中,首先生成了一个随机的3类数据集,然后使用AgglomerativeClustering指定3个聚类,并对数据进行聚类。最后,通过matplotlib库可视化了聚类结果。
通过调整AgglomerativeClustering的参数,比如聚类数目、链接方式等,可以进一步优化聚类效果。如果需要更多定制化的层次聚类算法,也可以考虑使用SciPy库中的hierarchical聚类方法。