Ответ
Значение PR AUC (Area Under the Precision-Recall Curve) для классификатора, который угадывает случайным образом, равно доле положительных объектов в выборке (prevalence).
Объяснение: Precision (точность) для случайного классификатора при любом пороге в среднем будет равна этой доле. Например, если вы случайно помечаете 10% объектов как положительные, то из них в среднем и будет 10% истинно положительных (если положительных в данных 10%). Таким образом, кривая Precision-Recall для случайного угадывания будет представлять собой примерно горизонтальную линию на уровне y = prevalence. Площадь под такой линией (PR AUC) и будет равна этой доле.
Практическая демонстрация:
import numpy as np
from sklearn.metrics import precision_recall_curve, auc
# Создаем несбалансированный датасет: 20% положительных меток
n_samples = 10000
prevalence = 0.2
y_true = np.random.binomial(1, prevalence, n_samples)
# Случайные предсказания (угадывание)
y_score_random = np.random.rand(n_samples)
precision, recall, _ = precision_recall_curve(y_true, y_score_random)
pr_auc_random = auc(recall, precision)
print(f"Доля положительных классов (prevalence): {prevalence:.3f}")
print(f"PR AUC для случайного угадывания: {pr_auc_random:.3f}")
# Результаты будут близки: ~0.2
Это важное свойство: в отличие от ROC-AUC, где случайный классификатор всегда дает 0.5, базовым уровнем для PR AUC является prevalence. Поэтому PR AUC особенно полезна для оценки моделей на сильно несбалансированных данных.