Как sklearn на самом деле рассчитывает AUROC?

Я понимаю, что кривая ROC для модели строится путем изменения порога (который влияет на TPR, FPR).

Таким образом, мое первоначальное понимание состоит в том, что для расчета AUROC вам нужно запускать модель много раз с разными порогами, чтобы получить эту кривую и, наконец, вычислить площадь.

Но похоже, что вам просто нужна оценка вероятности положительного класса, как в примере кода в roc_auc_score в sklearn ниже, чтобы рассчитать AUROC.

>>> импортировать numpy как np
>>> из sklearn.metrics импортировать roc_auc_score
>>> y_true = np.array ([0, 0, 1, 1])
>>> y_scores = np.array ([0.1, 0.4, 0.35, 0.8])
>>> roc_auc_score (y_true, y_scores)
0.75

Как это работает? Любое рекомендованное чтение?


person jasonlcy91    schedule 25.04.2018    source источник
comment
Вероятности предсказания классов из модели не сильно меняются при разных прогонах (если вы не меняете данные или гиперпараметры). Поэтому, когда у вас есть вероятности, вы можете изменить пороговые значения для назначения классов без повторного обучения модели. Вот что в нем происходит.   -  person Vivek Kumar    schedule 25.04.2018
comment
Вы можете узнать больше здесь: scikit-learn.org/stable/modules/   -  person Vivek Kumar    schedule 25.04.2018