層次聚類是一種基于距離度量的聚類算法,通過逐步合并最相似的數據點或聚類來構建一個聚類樹。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聚類方法。