1. 程式人生 > >scikit-learn之聚類效能度量

scikit-learn之聚類效能度量

1、調整蘭德係數

數學公式

Rand index(蘭德係數):RI=a+bC2nsamples
1、a:應該在一類,最後聚到一類的數量;
2、b:不應該在一類 ,最後聚類結果也沒把他們聚在一起的數量;
3、數量是指配對,在資料集中任意選兩個樣本點就是一個配對;
4、RI 有一個缺點,就是懲罰力度不夠,換句話說,大家普遍得分比較高,沒什麼區分度,於是有了 ARI;

Adjusted Rand index(調整蘭德係數):ARI=RIE[RI]]]max(RI)E[RI]]

優缺點

優點:
1、對於隨機的標籤分配,ARI 趨近於 0(而 RI 就不能保證獲得接近 0 的值,特別是如果簇的數量與取樣數量具有相同的數量級);
2、ARI 的取值範圍是 [-1,1],負值代表兩列聚類標籤相對獨立,正值代表兩列聚類標籤很相似,1 代表兩列聚類標籤完全相同;
3、對於簇的結構沒有作出任何假設,例如,可以用於比較 K-Means(假定 isotropic blob shapes) 與 譜聚類(可以找到具有 “folded” shapes 的聚類)的結果;
缺點:
1、由於需要正確聚類標籤,在實踐中幾乎不可用,但是可以用來在無監督的環境下,比較各種聚類演算法結果的一致性(adjusted_rand_score 是對稱的);

2、基於互資訊的度量

數學公式

假設兩列標籤分配(資料集中有 N 個物件),U 和 V;

mutual_info_score:MI(U,V)=i=1|U|j=1|V|P(i,j)log(P(i,j)P(i)P(j))

P(i)=|Ui|N 是從 U 中隨機選取的物件屬於類 Ui 的概率;

P(j)=|Vj|N 是從 V 中隨機選取的物件屬於類 Vi 的概率;

P(i,j)=|UiVj|N

是隨機選擇的物件屬於兩個類 UiVj 的概率;

normalized_mutual_info_score:NMI(U,V)=MI(U,V)H(U)H(V)

U 的熵:H(U)=i=1|U|P(i)log(P(i))

V 的熵:H(V)=i=1|V|P(j)log(P(j))

adjusted_mutual_info_score: