Spec-Zone.ru › scikit-learn

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]

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])
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...

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

Основные моменты выпуска scikit-learn 1.3

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

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

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

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

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

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

© 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

Spec-Zone.ru

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