Spec-Zone.ru › scikit-learn

jaccard_score

sklearn.metrics.jaccard_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[исходный код]

Оценка коэффициента сходства Жаккара.

Индекс Жаккара [1], или коэффициент сходства Жаккара, определяемый как отношение размера пересечения к размеру объединения двух наборов меток, используется для сравнения набора предсказанных меток для образца с соответствующим набором меток в y_true.

Поддержка целей за пределами бинарных достигается путем обработки данных многоклассовой и многометочной классификации как набора бинарных задач, по одной для каждой метки. В случае бинарной классификации параметр average='binary' возвращает коэффициент сходства Жаккара для pos_label. Если average не равен 'binary', параметр pos_label игнорируется, а оценки для обоих классов вычисляются, после чего усредняются или возвращаются обе (если задано average=None). Аналогично, для целей многоклассовой и многометочной классификации оценки для всех labels либо возвращаются, либо усредняются в зависимости от параметра average. Используйте labels, чтобы указать набор меток, для которых нужно вычислить оценку.

Подробнее см. в руководстве пользователя.

Параметры:
y_trueмассивоподобный объект размерности 1 или массив индикаторов меток / разреженная матрица

Истинные (правильные) метки. Разреженная матрица поддерживается только для меток типа многометочной классификации.

y_predмассивоподобный объект размерности 1 или массив индикаторов меток / разреженная матрица

Предсказанные метки, возвращаемые классификатором. Разреженная матрица поддерживается только для меток типа многометочной классификации.

labelsмассивоподобный объект формы (n_classes,), по умолчанию None

Набор меток, включаемых при average != 'binary', и их порядок, если average is None. Метки, присутствующие в данных, можно исключить, например, чтобы исключить «отрицательный класс» в многоклассовой классификации. Можно включить метки, отсутствующие в данных; им будет «назначено» 0 образцов. Для многометочных целей метки являются индексами столбцов. По умолчанию все метки из y_true и y_pred используются в отсортированном порядке.

pos_labelint, float, bool или str, по умолчанию 1

Класс, для которого нужно вывести результат, если average='binary' и данные бинарные; в противном случае этот параметр игнорируется. Для многоклассовых или многометочных целей задайте labels=[pos_label] и average != 'binary', чтобы вывести метрики только для одной метки.

average{‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’} или None, по умолчанию ‘binary’

Если задано None, возвращаются оценки для каждого класса. В противном случае этот параметр определяет способ усреднения данных:

'binary':

Выводить результаты только для класса, указанного в pos_label. Применимо только в том случае, если целевые значения (y_{true,pred}) бинарные.

'micro':

Вычислять метрики глобально, подсчитывая общее количество истинно положительных, ложно отрицательных и ложно положительных результатов.

'macro':

Вычислять метрики для каждой метки и находить их невзвешенное среднее. Дисбаланс меток не учитывается.

'weighted':

Вычислять метрики для каждой метки и находить их среднее, взвешенное по поддержке (количеству истинных экземпляров каждой метки). Это изменяет режим «macro», учитывая дисбаланс меток.

'samples':

Вычислять метрики для каждого экземпляра и находить их среднее (имеет смысл только для многометочной классификации).

sample_weightмассивоподобный объект формы (n_samples,), по умолчанию None

Веса образцов.

zero_division“warn”, {0.0, 1.0}, по умолчанию ”warn”

Задает возвращаемое значение при делении на ноль, то есть когда в предсказаниях и метках нет отрицательных значений. Если задано значение “warn”, возвращается 0, а также выдается предупреждение.

Добавлено в версии 0.24.

Возвращает:
scorefloat или ndarray формы (n_unique_labels,), dtype=np.float64

Оценка Жаккара. Если average не равен None, возвращается одно скалярное значение.

См. также

accuracy_score

Функция для вычисления оценки точности.

f1_score

Функция для вычисления оценки F1.

multilabel_confusion_matrix

Функция для вычисления матрицы ошибок для каждого класса или образца.

Примечания

jaccard_score может быть неудачной метрикой, если для некоторых образцов или классов нет положительных значений. Индекс Жаккара не определен, если отсутствуют истинные и предсказанные метки; в этом случае наша реализация возвращает оценку 0 и выдает предупреждение.

Ссылки

[1]

Статья в Википедии об индексе Жаккара.

Примеры

>>> import numpy as np
>>> from sklearn.metrics import jaccard_score
>>> y_true = np.array([[0, 1, 1],
...                    [1, 1, 0]])
>>> y_pred = np.array([[1, 1, 1],
...                    [1, 0, 0]])

В бинарном случае:

>>> jaccard_score(y_true[0], y_pred[0])
0.6666

В случае двумерного сравнения (например, сходства изображений):

>>> jaccard_score(y_true, y_pred, average="micro")
0.6

В случае многометочной классификации:

>>> jaccard_score(y_true, y_pred, average='samples')
0.5833
>>> jaccard_score(y_true, y_pred, average='macro')
0.6666
>>> jaccard_score(y_true, y_pred, average=None)
array([0.5, 0.5, 1. ])

В случае многоклассовой классификации:

>>> y_pred = [0, 2, 1, 2]
>>> y_true = [0, 1, 2, 2]
>>> jaccard_score(y_true, y_pred, average=None)
array([1. , 0. , 0.33])

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

Многометочная классификация с использованием цепочки классификаторов

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.jaccard_score.html

Spec-Zone.ru

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