Spec-Zone.ru › scikit-learn

precision_score

sklearn.metrics.precision_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[source]

Вычисление точности.

Точность — это отношение tp / (tp + fp) , где tp — количество истинно положительных результатов, а fp — количество ложноположительных результатов. Интуитивно, точность отражает способность классификатора не относить отрицательные примеры к положительным.

Лучшее значение — 1, худшее — 0.

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

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

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

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

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

Оценённые целевые значения, возвращённые классификатором.

labelsмассив-подобный объект, по умолчанию None

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

Изменено в версии 0.17: Параметр labels улучшен для многоклассовой задачи.

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':

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

'samples':

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

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

Веса примеров.

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

Устанавливает возвращаемое значение при делении на ноль.

Примечания:

  • Если установлено «warn», это работает как 0, но также выводится предупреждение.
  • Если установлено np.nan, такие значения будут исключены из среднего.

Добавлена в версии 1.3: np.nan опция была добавлена.

Возвращает:
precisionчисло с плавающей точкой (если average не None) или массив чисел с плавающей точкой формы (n_unique_labels,)

Точность положительного класса в бинарной классификации или взвешенное среднее точности каждого класса для многоклассовой задачи.

См. также

precision_recall_fscore_support

Вычисление точности, полноты, F-меры и поддержки для каждого класса.

recall_score

Вычисление отношения tp / (tp + fn) где tp — количество истинно положительных результатов, а fn — количество ложноотрицательных результатов.

PrecisionRecallDisplay.from_estimator

Построение кривой точности-полноты для данного оценщика и некоторых данных.

PrecisionRecallDisplay.from_predictions

Построение кривой точности-полноты для заданных бинарных предсказаний класса.

multilabel_confusion_matrix

Вычисление матрицы ошибок для каждого класса или примера.

Примечания

Когда true positive + false positive == 0, точность возвращает 0 и поднимает UndefinedMetricWarning. Это поведение можно изменить с помощью zero_division.

Примеры

>>> import numpy as np
>>> from sklearn.metrics import precision_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> precision_score(y_true, y_pred, average='macro')
0.22...
>>> precision_score(y_true, y_pred, average='micro')
0.33...
>>> precision_score(y_true, y_pred, average='weighted')
0.22...
>>> precision_score(y_true, y_pred, average=None)
array([0.66..., 0.        , 0.        ])
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> precision_score(y_true, y_pred, average=None)
array([0.33..., 0.        , 0.        ])
>>> precision_score(y_true, y_pred, average=None, zero_division=1)
array([0.33..., 1.        , 1.        ])
>>> precision_score(y_true, y_pred, average=None, zero_division=np.nan)
array([0.33...,        nan,        nan])
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> precision_score(y_true, y_pred, average=None)
array([0.5, 1. , 1. ])

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

Кривые калибровки вероятности

Настройка порога принятия решения для задач с чувствительностью к затратам

Точность-полнота

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

Spec-Zone.ru

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