Python中的層級聚類是一種基于對象之間相似度的聚類算法,可以將一個大的數據集劃分為若干個密度更高、相似度更高的聚類。本文將介紹基于Python的層級聚類算法。
首先,我們需要安裝并導入scikit-learn庫,該庫提供了用于層級聚類的函數,如AgglomerativeClustering。接下來,我們需要一個數據集來應用聚類算法,這里我們使用Iris數據集。
from sklearn.datasets import load_iris from sklearn.cluster import AgglomerativeClustering iris = load_iris() X = iris.data clustering = AgglomerativeClustering(n_clusters=3).fit(X)
在這里,我們將Iris數據集中的樣本分為3個簇。fit(X)方法將數據X應用于層級聚類算法,并返回一個聚類器對象,該對象包含我們需要的簇標簽。
現在,我們可以將聚類結果可視化。下面的代碼使用matplotlib庫繪制Iris數據集中花萼長度和花萼寬度之間的散點圖,并根據聚類結果對每個樣本進行不同顏色的標記。
import matplotlib.pyplot as plt colors = ['red', 'blue', 'green'] for i in range(len(X)): plt.scatter(X[i,0], X[i,1], color=colors[clustering.labels_[i]]) plt.show()
圖像顯示,三個簇分別為紅色、藍色和綠色。可以看出,層級聚類根據花瓣長度和花瓣寬度將數據劃分為了三個相似度更高的聚類。
總的來說,基于Python的層級聚類算法是一種非常常用和高效的聚類算法,可以將大數據集分割為更加緊密和相似的簇,用于數據分類和聚類分析。通過代碼實現和可視化,我們可以更好地了解和應用該算法。