Spec-Zone.ru › scikit-learn

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]

Эндрю Розенберг и Джулия Хиршберг, 2007. Мера V: внешняя мера оценки кластеризации на основе условной энтропии

Примеры

Идеальная разметка одновременно однородна и полна, поэтому её оценка равна 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

Примеры из галереи

Бикластеризация документов с помощью алгоритма спектральной ко-кластеризации

Поправка на случайность при оценке качества кластеризации

Демонстрация алгоритма кластеризации распространением близости

Демонстрация алгоритма кластеризации DBSCAN

Демонстрация кластеризации рукописных цифр методом K-средних

Основные нововведения scikit-learn 1.3

Кластеризация текстовых документов методом k-средних

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API