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 с предупреждением.Ссылки
Примеры
>>> 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