Ответ
ROC AUC не изменится. Это ключевое свойство метрики: она оценивает качество ранжирования (упорядочивания) объектов, а не абсолютные значения вероятностей.
Причина: Логарифмирование — монотонное преобразование. Если для двух объектов изначально было prob_A > prob_B, то после применения логарифма (при prob > 0) сохранится log(prob_A) > log(prob_B). Поскольку ROC AUC зависит только от относительного порядка оценок, а не от их конкретных величин, её значение останется прежним.
Демонстрация на Python:
import numpy as np
from sklearn.metrics import roc_auc_score
# Исходные данные
y_true = [0, 1, 0, 1, 0]
y_prob = [0.1, 0.9, 0.3, 0.8, 0.2] # Исходные вероятности
# ROC AUC для исходных вероятностей
auc_original = roc_auc_score(y_true, y_prob)
print(f'ROC AUC (оригинал): {auc_original:.4f}')
# Применяем логарифм (добавляем эпсилон для избежания log(0))
y_log_prob = np.log(np.array(y_prob) + 1e-10)
# ROC AUC после преобразования
auc_log = roc_auc_score(y_true, y_log_prob)
print(f'ROC AUC (после log): {auc_log:.4f}')
# Проверяем равенство
print(f'Метрики равны? {np.isclose(auc_original, auc_log)}')
Важное замечание: Это справедливо для любого монотонного преобразования (квадрат, экспонента, логарифм и т.д.), при условии, что оно применяется ко всем вероятностям одинаково и не нарушает порядок. Однако на практике логарифмирование вероятностей, близких к нулю, может привести к численной нестабильности (-inf).