层次聚类是一种基于距离度量的聚类算法,通过逐步合并最相似的数据点或聚类来构建一个聚类树。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聚类方法。