Spec-Zone.ru › scikit-learn

average_precision_score

sklearn.metrics.average_precision_score(y_true, y_score, *, average='macro', pos_label=1, sample_weight=None)[source]

Вычисление средней точности (AP) по прогнозным оценкам.

AP обобщает кривую точность-полнота как взвешенное среднее точности, достигнутой на каждом пороге, с увеличением полноты с предыдущего порога, используемого в качестве веса:

\[\text{AP} = \sum_n (R_n - R_{n-1}) P_n\]

где \(P_n\) и \(R_n\) — точность и полнота на n-ом пороге [1]. Данная реализация не интерполирована и отличается от вычисления площади под кривой точность-полнота с помощью трапецеидального правила, которое использует линейную интерполяцию и может быть слишком оптимистичным.

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

Параметры:
y_trueмассив-подобный формы (n_samples,) или (n_samples, n_classes)

Истинные бинарные метки или индикаторы бинарных меток.

y_scoreмассив-подобный формы (n_samples,) или (n_samples, n_classes)

Целевые оценки, могут быть либо оценками вероятности положительного класса, значениями доверия, либо неоткалиброванной мерой решений (как возвращается decision_function для некоторых классификаторов). Для оценок decision_function значения, больше или равные нулю, должны указывать на положительный класс.

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

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

'micro':

Вычисляются метрики глобально, рассматривая каждый элемент матрицы индикаторов меток как метку.

'macro':

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

'weighted':

Вычисляются метрики для каждой метки и находится их среднее значение, взвешенное по поддержке (количество истинных экземпляров для каждой метки).

'samples':

Вычисляются метрики для каждого экземпляра и находится их среднее.

Будет проигнорировано, когда y_true является бинарным.

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

Метка положительного класса. Применяется только к бинарному y_true. Для многоклассовых индикаторов y_true, значение pos_label фиксировано к 1.

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

Веса экземпляров.

Возвращает:
average_precisionfloat

Среднее значение точности.

См. также

roc_auc_score

Вычисление площади под кривой ROC.

precision_recall_curve

Вычисление пар точность-полнота для различных порогов вероятности.

Примечания

Изменено в версии 0.19: Вместо линейной интерполяции между рабочими точками, точность взвешивается изменением полноты с последней рабочей точки.

Ссылки

[1]

Статья Википедии о средней точности

Примеры

>>> import numpy as np
>>> from sklearn.metrics import average_precision_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> average_precision_score(y_true, y_scores)
np.float64(0.83...)
>>> y_true = np.array([0, 0, 1, 1, 2, 2])
>>> y_scores = np.array([
...     [0.7, 0.2, 0.1],
...     [0.4, 0.3, 0.3],
...     [0.1, 0.8, 0.1],
...     [0.2, 0.3, 0.5],
...     [0.4, 0.4, 0.2],
...     [0.1, 0.2, 0.7],
... ])
>>> average_precision_score(y_true, y_scores)
np.float64(0.77...)

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

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

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

Spec-Zone.ru

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