jaccard_score#
- sklearn.metrics.jaccard_score(y_true, y_pred, *, метки=None, pos_label=1, среднее='binary', sample_weight=None, zero_division='warn')[источник]#
Коэффициент сходства Жаккара.
Индекс Жаккара [1] или коэффициент сходства Жаккара, определяемый как размер пересечения, деленный на размер объединения двух наборов меток, используется для сравнения набора предсказанных меток для образца с соответствующим набором меток в
y_true.Поддержка за пределами бинарный целей достигается путем обработки многоклассовый и многометочный данные как набор бинарных задач, по одной для каждой метки. Для бинарный случае, установка
average='binary'вернет коэффициент сходства Жаккара дляpos_label. Еслиaverageне является'binary',pos_labelигнорируется, и оценки для обоих классов вычисляются, затем усредняются или возвращаются обе (когдаaverage=None). Аналогично, для многоклассовый и многометочный цели, оценки для всехlabelsлибо возвращаются, либо усредняются в зависимости отaverageпараметр. Используйтеlabelsуказать набор меток для вычисления оценки.Подробнее в Руководство пользователя.
- Параметры:
- y_true1d array-like, или массив индикаторов меток / разреженная матрица
Истинные (правильные) метки. Разреженная матрица поддерживается только когда метки имеют многометочный тип.
- y_pred1d array-like, или массив индикаторов меток / разреженная матрица
Предсказанные метки, как возвращенные классификатором. Разреженная матрица поддерживается только когда метки имеют многометочный тип.
- меткиarray-like формы (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'для отчета метрик только для одной метки.- среднее{‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’} или None, по умолчанию=’binary’
Если
None, возвращаются оценки для каждого класса. Иначе это определяет тип усреднения, выполняемого на данных:'binary':Отчитываться только о результатах для класса, указанного
pos_label. Это применимо только если цели (y_{true,pred}) являются бинарными.'micro':Рассчитать метрики глобально, подсчитывая общее количество истинно положительных, ложно отрицательных и ложноположительных.
'macro':Вычислить метрики для каждой метки и найти их невзвешенное среднее. Это не учитывает дисбаланс меток.
'weighted':Вычислить метрики для каждой метки и найти их среднее значение, взвешенное по поддержке (количеству истинных экземпляров для каждой метки). Это изменяет ‘macro’ для учета дисбаланса меток.
'samples':Вычислить метрики для каждого экземпляра и найти их среднее значение (только имеет смысл для многоклассовой классификации).
- sample_weightarray-like формы (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может быть плохой метрикой, если нет положительных значений для некоторых выборок или классов. Jaccard не определён, если нет истинных или предсказанных меток, и наша реализация вернёт оценку 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]) 0.6666
В случае 2D сравнения (например, сходства изображений):
>>> 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])
Примеры галереи#
Многометочная классификация с использованием цепочки классификаторов