輪廓 (聚類)
在機器學習與數據挖掘領域,輪廓指的是一種反映數據聚類結果一致性的方法,可以用於評估聚類後簇與簇之間的離散程度。[1]輪廓的取值範圍為[-1, +1],如果某一樣本的輪廓接近1,則說明樣本聚類結果合理;如果接近-1,則說明其更應該分類到其他的簇;如果輪廓近似為0,則說明該樣本在兩個簇的邊界上。所有樣本輪廓的均值稱為聚類結果的輪廓係數(Silhouette Coefficiency),是該聚類是否合理、有效的度量。
定義
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Silhouette-plot-orange.png/220px-Silhouette-plot-orange.png)
假設某一數據集使用如k-means等聚類方法分成了 個簇:
對於某一屬於簇樣本,記為 ,設為樣本與之間的距離,求算樣本與其他樣本之間的平均距離的公式如下(由於不計算樣本與自身的距離,故計算平均值時樣本總數為):
上述公式結果記為,它反映了樣本當前聚類結果的優劣(值越小,聚類結果越好)。
然後,我們定義樣本與某簇的平均相異性為與樣本距離簇的平均值到簇內所有樣本的距離均值 (),則對於樣本 ,有最小平均距離對應的簇,我們稱其為的「相鄰簇」:
結合上述內容,我們定義的輪廓值為:
等效為:
對於上述定義,顯然
為了防止簇數量暴增,對於僅有一個樣本的簇(),定義其。 反映了與其所屬簇的距離,較小的值說明其與所屬簇的關係緊密;而較大的反映了與其他簇關係疏遠;故為提高(或稱為優化聚類結果),我們需要使[2]。
考夫曼(Kaufman)等人定義了輪廓係數(silhouette coefficient )的概念——在某個數據集的有限種聚類方法中,平均的最大值[3]:
上式中代表被分為個簇後該數據集的平均 。
評價
輪廓係數一般不能用於橫向評價多種聚類方法。凸簇(如經由DBSCAN方法得出的簇)的輪廓係數一般高於其他類型的簇。
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/2/21/SC_for_3_clustering_method.pdf/page1-220px-SC_for_3_clustering_method.pdf.jpg)
另見
- Davies–Bouldin指數
- k-medoids
- 如何確定數據集中有多少簇
參考文獻
- ^ Peter J. Rousseeuw. Silhouettes: a Graphical Aid to the Interpretation and Validation of Cluster Analysis. Computational and Applied Mathematics. 1987, 20: 53–65. doi:10.1016/0377-0427(87)90125-7.
- ^ R.C. de Amorim, C. Hennig. Recovering the number of clusters in data sets with noise features using feature rescaling factors. Information Sciences. 2015, 324: 126–145. arXiv:1602.06989
. doi:10.1016/j.ins.2015.06.039.
- ^ Leonard Kaufman; Peter J. Rousseeuw. Finding groups in data : An introduction to cluster analysis. Hoboken, NJ: Wiley-Interscience. 1990: 87. ISBN 9780471878766. doi:10.1002/9780470316801.