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


Python sklearn v_measure_score用法及代碼示例

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

用法:

sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)

V-measure 給定基本事實的集群標簽。

此分數與 normalized_mutual_info_score 相同,帶有用於平均的 'arithmetic' 選項。

V-measure 是同質性和完整性之間的調和平均值:

v = (1 + beta) * homogeneity * completeness
     / (beta * homogeneity + completeness)

該指標獨立於標簽的絕對值:類或集群標簽值的排列不會以任何方式改變得分值。

此外,該指標是對稱的:將 label_truelabel_pred 切換將返回相同的分數值。當不知道真實的基本事實時,這對於測量同一數據集上兩個獨立標簽分配策略的一致性很有用。

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

參數

labels_trueint 數組,形狀 = [n_samples]

地麵實況類標簽用作參考

labels_pred形狀類似數組 (n_samples,)

要評估的集群標簽

beta浮點數,默認=1.0

歸因於 homogeneitycompleteness 的權重比。如果 beta 大於 1,則 completeness 在計算中的權重更大。如果 beta 小於 1,則 homogeneity 的權重更大。

返回

v_measure浮點數

得分在 0.0 和 1.0 之間。 1.0 代表完美完整的標簽

參考

1

Andrew Rosenberg 和 Julia Hirschberg,2007。V-Measure:基於條件熵的外部聚類評估度量

例子

完美的標簽既同質又完整,因此得分為 1.0:

>>> from sklearn.metrics.cluster import v_measure_score
>>> v_measure_score([0, 0, 1, 1], [0, 0, 1, 1])
1.0
>>> v_measure_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0

將所有類成員分配到相同集群的標簽是完整的,不是同質的,因此受到懲罰:

>>> print("%.6f" % v_measure_score([0, 0, 1, 2], [0, 0, 1, 1]))
0.8...
>>> print("%.6f" % v_measure_score([0, 1, 2, 3], [0, 0, 1, 1]))
0.66...

具有來自同一類的成員的純集群的標簽是同質的,但 un-necessary 拆分會損害完整性,因此也會懲罰 V-measure:

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 1, 2]))
0.8...
>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 1, 2, 3]))
0.66...

如果類成員完全分布在不同的集群中,則分配是完全不完整的,因此 V-Measure 為空:

>>> print("%.6f" % v_measure_score([0, 0, 0, 0], [0, 1, 2, 3]))
0.0...

包含來自完全不同類別的樣本的集群完全破壞了標簽的同質性,因此:

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 0, 0]))
0.0...

相關用法


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