聚類模型性能評價指標
有監督的分類算法的評價指標通常是accuracy, precision, recall, etc;由於聚類算法是無監督的學習算法,評價指標則沒有那麽簡單了。因為聚類算法得到的類別實際上不能說明任何問題,除非這些類別的分布和樣本的真實類別分布相似,或者聚類的結果滿足某種假設,即同一類別中樣本間的相似性高於不同類別間樣本的相似性。聚類模型的評價指標如下:
1. Adjusted Rand Index(蘭德指數):
若已知樣本的真實類別標簽labels_true ,和聚類算法得到的標簽labels_pred,ARI是計算兩種標簽分布相似性的函數,該函數對標簽的定義形式沒有要求。scikit-learn中的示例代碼如下:
1 from sklearn import metrics 2 labels_true = [0, 0, 0, 1, 1, 1] 3 labels_pred = [0, 0, 1, 1, 2, 2] 4 metrics.adjusted_rand_score(labels_true, labels_pred)
1 metrics.adjusted_rand_score(labels_pred, labels_true)
adjusted_rand_score方法的輸入參數沒有順序要求,上面兩種結果是完全一樣的。
最好的聚類結果是聚類類別和真實類別的分布完全一致,如下代碼,結果為1
1 labels_pred = labels_true[:]2 metrics.adjusted_rand_score(labels_true, labels_pred)
較差的聚類結果會得到負的或者接近0的蘭德指數,如下代碼
1 labels_true = [0, 1, 2, 0, 3, 4, 5, 1] 2 labels_pred = [1, 1, 0, 0, 2, 2, 2, 2] 3 metrics.adjusted_rand_score(labels_true, labels_pred)
結果為 -0.12
ARI的優點:
- 隨機均勻的標簽分布的ARI值接近0,這點與raw Rand Index和 V-measure指標不同;
- ARI值的範圍是[-1,1],負的結果都是較差的,說明標簽是獨立分布的,相似分布的ARI結果是正的,1是最佳結果,說明兩種標簽的分布完全一致;
- 不用對聚類結果做任何假設,可以用來比較任意聚類算法的聚類結果間的相似性。
ARI的缺點:
ARI指標需要事先知道樣本的真實標簽,這和有監督學習的先決條件是一樣的。然而ARI也可以作為一個通用的指標,用來評估不同的聚類模型的性能。
數學公式:
如果C是真實類別,K是聚類結果,我們定義a和b分別是:
a: 在C和K中都是同一類別的樣本對數
b: 在C和K中都是不同類別的樣本對數
raw Rand Index 的公式如下:
C2nsamples 是樣本所有的可能組合對.
RI不能保證在類別標簽是隨機分配的情況下,其值接近0(極端情況是類別數和樣本數相等)
為了解決這個問題,ARI被提出,它具有更高的區分度.
參考:
http://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation
http://blog.csdn.net/sinat_33363493/article/details/52496011
https://en.wikipedia.org/wiki/Rand_index
https://stats.stackexchange.com/questions/89030/rand-index-calculation
聚類模型性能評價指標