sklearn.metrics.v_measure_score?
sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)
V-度量簇標簽給出了真實值。
此分數與使用'arithmetic'選項進行平均的normalized_mutual_info_score
相同。
V度量是均勻性和完整性之間的調和均值:
v = (1 + beta) * homogeneity * completeness
/ (beta * homogeneity + completeness)
此指標獨立于標簽的絕對值:類別或簇標簽值的排列不會以任何方式改變得分值。
此度量還對稱:將label_true與label_pred互換將返回相同的分值。當未知真實值時,對于測量兩個獨立標簽分配策略在同一數據集上的一致性很有用。
在用戶指南中閱讀更多內容。
參數 | 說明 |
---|---|
labels_true | int array, shape = [n_samples] 真實類標簽用作參考 |
labels_pred | array-like of shape (n_samples,) 聚類標簽以進行評估 |
beta | float 同質性(homogeneity)與完整性(completeness)的比重比。如果beta大于1,則在計算中對完整性的加權更大。如果beta小于1,則同質性的權重會更大。 |
返回值 | 說明 |
---|---|
v_measure | float 分數介于0.0和1.0之間。1.0代表完整標簽 |
另見:
參考
示例
完整標簽既均勻又完整,因此得分為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...
如果類成員完全分散在不同的集群中,則分配完全不完整,因此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...