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: Вместо линейной интерполяции между рабочими точками, точность взвешивается изменением полноты с последней рабочей точки.
Ссылки
Примеры
>>> 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