一、定義
系統聚類法是一種基於數據點之間距離來進行聚類的方法。它將所有數據點都看作獨立的類,然後不斷地將距離最近的兩個點合併成一類,直至只剩下一個類或者滿足一定的終止條件為止。
代碼示例:
from sklearn.cluster import AgglomerativeClustering clustering = AgglomerativeClustering().fit(X)
二、距離計算方法
在系統聚類法中,距離計算方法是非常重要的。常見的距離計算方法有歐氏距離、曼哈頓距離、餘弦相似度等。對於不同的應用場景,選擇合適的距離計算方法才能得到更好的聚類效果。
代碼示例:
from scipy.spatial.distance import pdist, squareform # 計算歐氏距離 distances = pdist(X, metric='euclidean') squareform(distances)
三、聚類可視化
通過聚類可視化,我們可以更直觀地了解每個簇的數據分布情況。對於高維數據,可以使用降維方法,如PCA或者t-SNE將數據降低到二維或三維,然後進行可視化。
代碼示例:
import matplotlib.pyplot as plt from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X) plt.scatter(X_pca[:, 0], X_pca[:, 1], c=clustering.labels_)
四、簇的評價指標
在聚類過程中,如何評價聚類效果是一個非常重要的問題。常見的簇的評價指標有輪廓係數、Davies-Bouldin指數、Calinski-Harabasz指數等。
代碼示例:
from sklearn.metrics import silhouette_score, davies_bouldin_score, calinski_harabasz_score # 計算輪廓係數 silhouette_score(X, clustering.labels_) # 計算Davies-Bouldin指數 davies_bouldin_score(X, clustering.labels_) # 計算Calinski-Harabasz指數 calinski_harabasz_score(X, clustering.labels_)
五、終止條件
在系統聚類法中,終止條件可以是類數達到預先設定的值,也可以是距離達到某個設定的閾值。針對不同的應用場景,選擇不同的終止條件是很重要的。
代碼示例:
clustering = AgglomerativeClustering(n_clusters=5).fit(X) # 或者 clustering = AgglomerativeClustering(distance_threshold=1.5).fit(X)
原創文章,作者:OIXMD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330605.html