在聚類分析中,外部指標和內部指標用于評估聚類結果的質量。外部指標需要知道真實的類別標簽,而內部指標則僅基于聚類結果本身進行評估。
外部指標
Purity (純度): 計算聚類結果中每個簇中最多數目的樣本所屬的類別,并計算所有簇的該類別樣本數之和占所有樣本數的比例。
Python (使用 sklearn):
python
復制代碼
from sklearn import metrics
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
# 假設 X 是數據, y 是真實標簽
# 聚類...
kmeans = KMeans(n_clusters=3)
labels_pred = kmeans.fit_predict(X)
# 計算純度 (需要自定義函數)
def purity_score(y_true, y_pred):
contingency_matrix = metrics.cluster.contingency_matrix(y_true, y_pred)
return np.sum(np.amax(contingency_matrix, axis=0)) / y_true.shape[0]
purity = purity_score(y, labels_pred)
print(f"Purity: {purity}")
Matlab:
在 Matlab 中,沒有直接的 purity 函數,但可以通過混淆矩陣計算。
Adjusted Rand Index (ARI): 衡量兩個聚類結果之間的相似度。
Python (使用 sklearn):