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')[source]

Коэффициент схожести Якобсона.

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

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

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

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

Фактические (правильные) метки.

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

Предсказанные метки, возвращаемые классификатором.

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

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

pos_labelЦелое число, число с плавающей точкой, булево значение или строка, по умолчанию = 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':

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

'samples':

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

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

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

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

Устанавливает значение, которое нужно вернуть при делении на ноль, т.е. когда в предсказаниях и метках нет отрицательных значений. Если установлено «warn», это действует как 0, но также выдаётся предупреждение.

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

Возвращает:
scoreЧисло с плавающей точкой или массив формы (n_unique_labels,), типа 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])
np.float64(0.6666...)

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

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

В многометковом случае:

>>> jaccard_score(y_true, y_pred, average='samples')
np.float64(0.5833...)
>>> jaccard_score(y_true, y_pred, average='macro')
np.float64(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–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.jaccard_score.html

Spec-Zone.ru

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