sklearn.metrics.average_precision_score

sklearn.metrics.average_precision_score()

Calcula la precisión media (AP) de los puntajes de predicción.

AP resume una curva de precisión-recuperación como la media ponderadas de precisiones obtenida en cada umbral, con el incremento en exhaustividad desde el ultimo umbral usado como el ponderado:

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

donde \(P_n\) y \(R_n\) son la precisión y exhaustividad en el umbral n-ésimo [1]. Esta implementación no está interpolada y es diferente de calcular el área bajo la curva de precisión-exhaustividad con la regla trapezoidal, que utiliza la interpolación lineal y puede ser demasiado optimista.

Nota: esta implementación está restringida a la tarea de clasificación binaria o a la tarea de clasificación multietiqueta.

Más información en el Manual de usuario.

Parámetros
y_truendarray de forma (n_samples,) o (n_samples, n_classes)

Etiquetas binarias verdaderas o indicadores de etiquetas binarias.

y_scorendarray de forma (n_samples,) o (n_samples, n_classes)

Los puntajes objetivo, pueden ser estimados de probabilidad de la clase positiva, valores de confianza, o una medida sin umbrales de decisiones (como es devuelva por decision_function en algunos clasificadores).

average{“micro”, “samples”, “weighted”, “macro”} o None default=”macro”

Si es None, los valores para cada clase son devueltos. De lo contrario, esto determina el tipo de promedio realizado en los datos:

'micro':

Calcula las métricas globalmente considerando cada elemento de la matriz de indicadores de etiqueta como una etiqueta.

'macro':

Calcula las métricas para cada etiqueta y encuentra su media no ponderada. Esto no tiene en cuenta el desequilibrio de la etiqueta.

'weighted':

Calcula las métricas para cada etiqueta y encuentra su media, ponderada por apoyo (el número de instancias verdaderas para cada etiqueta).

'samples':

Calcula las métricas para cada instancia, y encuentra su media.

Será ignorado cuando y_true es binario.

pos_labelentero o cadena de caracteres, default=1

La etiqueta de la clase positiva. Sólo aplicada al binario y_true. Para el indicador multietiqueta y_true, pos_label se fija a 1.

sample_weightarray-like de forma (n_samples,), default=None

Ponderados de muestras.

Devuelve
average_precisionflotante

Ver también

roc_auc_score

Calcula el área bajo la curva ROC.

precision_recall_curve

Calcula los pares de precisión-exhaustividad para diferentes umbrales de probabilidad.

Notas

Distinto en la versión 0.19: En lugar de interpolar linealmente entre los puntos operativos, las precisiones se ponderan por el cambio en la exhaustividad desde el último punto operativo.

Referencias

1

Entrada de Wikipedia para la precisión media

Ejemplos

>>> 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...

Ejemplos usando sklearn.metrics.average_precision_score