Python輪廓系數(shù)法(Silhouette Coefficient)是一種度量聚類算法效果的方法,它結(jié)合了聚類內(nèi)部的密度和不同聚類之間的分離程度,可以用來幫助我們評估聚類是否合理、聚類結(jié)果是否合適。
#導(dǎo)入聚類算法庫和數(shù)據(jù)集 from sklearn.datasets import make_blobs from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score # 生成示例數(shù)據(jù) X, y = make_blobs(n_samples=1000, n_features=2, centers=4, random_state=2) # 評估KMeans聚類算法效果 for k in range(2, 10): kmeans = KMeans(n_clusters=k) y_pred = kmeans.fit_predict(X) score = silhouette_score(X, y_pred) print('K={0}, 輪廓系數(shù)={1}'.format(k, score))
以上代碼先生成了一個二維隨機數(shù)據(jù)集,然后通過遍歷不同的K值,使用KMeans聚類算法擬合數(shù)據(jù),然后計算輪廓系數(shù)來衡量聚類效果。
對于每一個K值,都會得到一個輪廓系數(shù)來衡量聚類效果,輪廓系數(shù)越接近1則表示聚類效果越好,建議選擇該K值。如果輪廓系數(shù)小于0則表示該聚類算法效果較差,需要重新考慮使用其他聚類算法或者調(diào)整超參。