當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python sklearn adjusted_rand_score用法及代碼示例

本文簡要介紹python語言中 sklearn.metrics.adjusted_rand_score 的用法。

用法:

sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)

蘭德 index 根據機會調整。

蘭德 index 通過考慮在預測和真實聚類中相同或不同聚類中分配的所有樣本對和計數對來計算兩個聚類之間的相似性度量。

然後使用以下方案將原始 RI 分數 “adjusted for chance” 納入 ARI 分數:

ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)

因此,確保調整後的 Rand index 具有接近 0.0 的隨機標記值,而與集群和樣本的數量無關,並且當集群相同(直至排列)時恰好為 1.0。

ARI 是一個對稱度量:

adjusted_rand_score(a, b) == adjusted_rand_score(b, a)

在用戶指南中閱讀更多信息。

參數

labels_trueint 數組,形狀 = [n_samples]

地麵實況類標簽用作參考

labels_pred形狀類似數組 (n_samples,)

要評估的集群標簽

返回

ARI浮點數

相似度得分介於 -1.0 和 1.0 之間。隨機標簽的 ARI 接近 0.0。 1.0 代表完美匹配。

參考

休伯特 1985

L. Hubert 和 P. Arabie,比較分區,分類雜誌 1985https://link.springer.com/article/10.1007%2FBF01908075

斯坦利2004

D. Steinley,Hubert-Arabie 調整後蘭德 index 的屬性,心理學方法 2004

https://en.wikipedia.org/wiki/Rand_index#Adjusted_Rand_index

例子

完全匹配的標簽甚至有 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

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.metrics.adjusted_rand_score。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。