average_precision_score
- sklearn.metrics.average_precision_score(y_true, y_score, *, average='macro', pos_label=1, sample_weight=None)[исходный код]
-
Вычисляет среднюю точность (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-
Вычисляет пары «точность–полнота» для различных порогов вероятности.
PrecisionRecallDisplay.from_estimator-
Строит кривую «точность–полнота» с помощью оценивателя и данных.
PrecisionRecallDisplay.from_predictions-
Строит кривую «точность–полнота» по истинным и предсказанным меткам.
Примечания
Изменено в версии 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) 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) 0.77
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.average_precision_score.html