v_measure_score
- sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)[source]
-
Метрика V-мера для кластеризации, заданной истинными метками.
Эта метрика идентична
normalized_mutual_info_scoreс параметром усреднения'arithmetic'.Метрика V-мера является гармоническим средним между однородностью и полнотой:
v = (1 + beta) * homogeneity * completeness / (beta * homogeneity + completeness)Эта метрика не зависит от абсолютных значений меток: перестановка значений меток классов или кластеров не изменит значение метрики.
Кроме того, эта метрика симметрична: перемена
label_trueиlabel_predвернёт то же значение метрики. Это может быть полезно для измерения согласованности двух независимых стратегий присвоения меток одному набору данных, когда истинные метки неизвестны.Подробнее см. в Руководстве пользователя.
- Параметры:
-
- labels_truearray-like of shape (n_samples,)
-
Истинные метки классов, используемые в качестве эталона.
- labels_predarray-like of shape (n_samples,)
-
Метки кластеров для оценки.
- betafloat, default=1.0
-
Соотношение весов, приписываемых
homogeneityиcompleteness. Еслиbetaбольше 1,completenessсильнее учитывается в расчёте. Еслиbetaменьше 1,homogeneityсильнее учитывается.
- Возвращаемые значения:
-
- v_measurefloat
-
Значение метрики от 0.0 до 1.0. 1.0 соответствует идеально полной метке.
См. также
homogeneity_score-
Метрика однородности кластеризации.
completeness_score-
Метрика полноты кластеризации.
normalized_mutual_info_score-
Нормализованная взаимная информация.
Ссылки
Примеры
Идеальные метки являются однородными и полными, поэтому имеют оценку 1.0:
>>> from sklearn.metrics.cluster import v_measure_score >>> v_measure_score([0, 0, 1, 1], [0, 0, 1, 1]) np.float64(1.0) >>> v_measure_score([0, 0, 1, 1], [1, 1, 0, 0]) np.float64(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-меры также наказывается:
>>> 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-мера равна нулю:
>>> 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...
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.v_measure_score.html