まとめ
- Average Precision (AP) | Evaluar la curva precision–recallの概要を押さえ、評価対象と読み取り方を整理します。
- Python 3.13 のコード例で算出・可視化し、手順と実務での確認ポイントを確認します。
- 図表や補助指標を組み合わせ、モデル比較や閾値調整に活かすヒントをまとめます。
1. Definición #
Si la curva PR está formada por puntos \((R_n, P_n)\), el average precision se define como: \mathrm{AP} = \sum_{n}(R_n - R_{n-1}) P_n El incremento en recall actúa como peso, por lo que AP refleja la precisión media cuando desplazamos el umbral de decisión.
2. Cálculo en Python 3.13 #
python --version # p. ej. Python 3.13.0
pip install scikit-learn matplotlib
Reutilizando las probabilidades proba del ejemplo precision–recall, podemos obtener AP con unas pocas llamadas de scikit-learn:
from sklearn.metrics import precision_recall_curve, average_precision_score
precision, recall, thresholds = precision_recall_curve(y_test, proba)
ap = average_precision_score(y_test, proba)
print(f"Average Precision: {ap:.3f}")
La curva PR correspondiente es la misma pr_curve.png generada anteriormente. AP integra la curva PR ponderando la precisión con los incrementos de recall.
3. Diferencia entre AP y PR-AUC #
- verage_precision_score implementa la integración escalonada utilizada en recuperación de información.
- sklearn.metrics.auc(recall, precision) usa la regla del trapecio y produce el PR-AUC clásico.
- AP suele ser más estable en datos desbalanceados porque enfatiza los tramos donde el recall realmente aumenta.
4. Consejos prácticos #
- Selección de umbral – Un AP alto sugiere que el modelo mantiene buena precisión en un rango amplio de recalls.
- Ranking y búsqueda – En tareas de recomendación se reporta el mean average precision (MAP), promedio de AP por consulta.
- Complemento al F1 – F1 describe un único punto de operación, mientras que AP evalúa todo el espectro de umbrales.
Resumen #
- Average Precision evalúa la curva precision–recall completa y es ideal para datasets desbalanceados.
- Python 3.13 con scikit-learn permite calcularlo fácilmente mediante verage_precision_score.
- Combínalo con F1, ROC-AUC y la visualización PR para comparar modelos y definir umbrales operativos.