調整後的蘭德指數#
- sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)[來源]#
針對機率調整的蘭德指數。
蘭德指數透過考慮所有樣本對,並計算在預測和真實分群中被分配到相同或不同群集的配對,來計算兩個分群之間的相似性度量。
原始的 RI 分數接著會使用以下方案「針對機率調整」為 ARI 分數
ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)
因此,調整後的蘭德指數可確保對於隨機標記的值接近 0.0,與群集和樣本的數量無關,並且當群集完全相同(最多一個排列)時,其值正好為 1.0。調整後的蘭德指數的下限為 -0.5,尤其是不一致的分群。
ARI 是一種對稱度量
adjusted_rand_score(a, b) == adjusted_rand_score(b, a)
請參閱使用者指南,以了解更多資訊。
- 參數:
- labels_true形狀為 (n_samples,) 的類陣列,dtype=int
用作參考的真實類別標籤。
- labels_pred形狀為 (n_samples,) 的類陣列,dtype=int
要評估的群集標籤。
- 回傳值:
- ARIfloat
相似性分數介於 -0.5 和 1.0 之間。隨機標記的 ARI 接近 0.0。1.0 代表完全匹配。
另請參閱
adjusted_mutual_info_score
調整後的互資訊。
參考文獻
[Hubert1985]L. Hubert 和 P. Arabie, Comparing Partitions, Journal of Classification 1985 https://link.springer.com/article/10.1007%2FBF01908075
[Steinley2004]D. Steinley, Properties of the Hubert-Arabie adjusted Rand index, Psychological Methods 2004
範例
完美匹配的標記分數為 1,即使
>>> from sklearn.metrics.cluster import adjusted_rand_score >>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 1]) 1.0 >>> adjusted_rand_score([0, 0, 1, 1], [1, 1, 0, 0]) 1.0
將所有類別成員分配到相同群集的標記是完整的,但可能並不總是純粹的,因此會受到懲罰
>>> adjusted_rand_score([0, 0, 1, 2], [0, 0, 1, 1]) 0.57...
ARI 是對稱的,因此具有來自相同類別的成員的純群集但有不必要分割的標記會受到懲罰
>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 2]) 0.57...
如果類別成員完全分散在不同的群集中,則分配完全不完整,因此 ARI 非常低
>>> adjusted_rand_score([0, 0, 0, 0], [0, 1, 2, 3]) 0.0
對於不一致的標記,ARI 的值可能為負值,這些標記比隨機標籤的期望值更糟
>>> adjusted_rand_score([0, 0, 1, 1], [0, 1, 0, 1]) -0.5
請參閱分群效能評估中針對機率的調整,以取得更詳細的範例。