sklearn.metrics.normalized_mutual_info_score?
sklearn.metrics.normalized_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')
兩個聚類之間的標準化互信息。
歸一化互信息(NMI)是互信息(MI)分數的歸一化,用于在0(無互信息)和1(完全相關)之間縮放結果。 在此函數中,互信息通過由average_method定義的H(labels_true)和H(labels_pred))的某種廣義均值進行歸一化。
此度量沒有隨機調整。因此,adjusted_mutual_info_score
可能是首選。
此指標獨立于標簽的絕對值:類或簇標簽值的排列不會以任何方式改變得分值。
此度量還對稱:將label_true與label_pred互換將返回相同的得分值。 當未知真實值時,這對于測量兩個獨立標簽分配策略在同一數據集上的一致性很有用。
在用戶指南中閱讀更多內容。
參數 | 說明 |
---|---|
labels_true | int array, shape = [n_samples] 數據聚集成不相交的子集。 |
labels_pred | int array-like of shape (n_samples,) 數據聚集成不相交的子集。 |
average_method | string, optional (default: ‘arithmetic’) 如何在分母中計算歸一化。可能的選項是‘min’,‘geometric’,‘arithmetic’,和‘max’。 0.20版中的新功能。 在0.22版中進行了更改:average_method的默認值從‘geometric’更改為‘arithmetic’。 |
返回值 | 說明 |
---|---|
nmi | float 分數介于0.0和1.0之間。 1.0代表完全標簽 |
另見:
V度量(具有算術平均值選項的NMI。)
蘭德調整指數
調整互信息(隨機調整)
示例
完全標簽既均勻又完整,因此得分為1.0:
>>> from sklearn.metrics.cluster import normalized_mutual_info_score
>>> normalized_mutual_info_score([0, 0, 1, 1], [0, 0, 1, 1])
...
1.0
>>> normalized_mutual_info_score([0, 0, 1, 1], [1, 1, 0, 0])
...
1.0
如果類成員完全分散在不同的群集中,則分配完全不完整,因此NMI為null:
>>> normalized_mutual_info_score([0, 0, 0, 0], [0, 1, 2, 3])
...
0.0