precision_score
- sklearn.metrics.precision_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[исходный код]
-
Вычислить точность.
Точность — это отношение
tp / (tp + fp), гдеtp— число истинно положительных результатов, аfp— число ложноположительных результатов. Интуитивно точность характеризует способность классификатора не присваивать положительную метку отрицательному образцу.Наилучшее значение — 1, наихудшее — 0.
Поддержка целей, выходящих за рамки бинарных, обеспечивается за счёт обработки данных многоклассовой и многометочной классификации как набора бинарных задач — по одной для каждой метки. Для бинарного случая значение
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_labelint, float, bool или str, по умолчанию=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.
- Возвращает:
-
- precisionfloat (если average не равен None) или массив float формы (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, precision возвращает 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–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.precision_score.html