v_measure_score
- sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)[исходный код]
-
Мера 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]) 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.67Разметка с чистыми кластерами, в которых объекты принадлежат одним и тем же классам, является однородной, но ненужное разделение вредит полноте и, следовательно, также снижает оценку меры 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.67Если объекты классов полностью распределены по разным кластерам, разметка совершенно неполная, поэтому мера 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–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.v_measure_score.html