Перейти к основному содержимому

ROC-кривая

Управление готовностью назначать положительный класс

Рассмотрим бинарный классификатор:

y^(x)=sign(g(x))={+1,g(x)01,g(x)<0\hat{y}(\mathbf{x}) = \text{sign}(g(\mathbf{x})) = \begin{cases} +1, & g(\mathbf{x})\ge 0 \\ -1, & g(\mathbf{x})< 0 \\ \end{cases}

Его относительная дискриминантная функция g(x)g(\mathbf{x}) характеризует степень уверенности классификатора в том, что объект принадлежит положительному классу.

Решающее правило можно обобщить, введя порог α\alpha, с которым производится сравнение:

y^(x)=sign(g(x)α)={+1,g(x)α1,g(x)<α\hat{y}(\mathbf{x}) = \text{sign}(g(\mathbf{x})-\alpha) = \begin{cases} +1, & g(\mathbf{x})\ge \alpha \\ -1, & g(\mathbf{x})< \alpha \\ \end{cases}

Чем α\alpha выше, тем более осторожно классификатор начинает предсказывать положительный класс для тех же самых объектов, и наоборот, для более низких α\alpha положительный класс назначается более охотно. Это полезный параметр, чтобы управлять готовностью назначать объектам положительный класс без перенастройки самой модели.

Рассмотрим задачу кредитного скоринга, в которой для клиентов (объектов x\mathbf{x}) нужно предсказывать, вернут они кредит (y=+1)(y=+1) или нет (y=1)(y=-1), на основе чего принимается решение о выдаче им кредита. Для низких α\alpha мы более склонны давать кредиты, и это обосновано в периоды экономического подъёма. В периоды же экономического спада разумно выдавать кредиты более осторожно, повысив гиперпараметр α\alpha. Обратим внимание, что, варьируя порог α\alpha, мы можем управлять поведением модели в различных экономических ситуациях без необходимости перенастраивать модель.

Меры TPR и FPR

Определим две меры качества бинарной классификации - true positive rate (TPR) и false positive rate (FPR):

TPR=TPN+,FPR=FPN,TPR=\frac{TP}{N_+},\qquad FPR=\frac{FP}{N_-},

где N+,NN_+,N_- - число объектов положительного и отрицательного класса соответственно. Мера TPR совпадает с ранее изученной мерой Recall. Также её называют recognition rate, поскольку по смыслу она характеризует долю верных (положительных) детекций среди объектов положительного класса. Меру FRP также называют false alarm rate, поскольку она характеризует долю неверных детекций (положительным классом) среди объектов отрицательного класса.

В примере с кредитным скорингом TPR будет измерять долю клиентов, которые могли бы вернуть кредит, и мы действительно сочли их кредитоспособными. FPR же будет измерять долю клиентов, которые не способны вернуть кредит, но которых мы ошибочно сочли кредитоспособными.

ROC-кривая

ROC-кривая (ROC-curve, receiver operating characteristic) показывает зависимость TPRTPR от FPRFPR при изменении порога α\alpha. Обе величины изменяются от нуля до единицы по неубывающему закону, как показано на графике:

ROC-curve.png

При высоком α\alpha классификатор будет очень редко назначать положительный класс - только в тех случаях, когда он очень уверен в положительности класса. Тогда TPR будет близок к нулю (будет мало верно распознанных объектов положительного класса), как и FPR (поскольку положительный класс будет назначаться редко). Если же уменьшать α\alpha, то частота назначения положительного класса будет увеличиваться, увеличивая и TPR, и FPR, в результате чего мы прочертим ROC кривую.

Чем выше ROC-кривая, тем лучше классификатор, поскольку нам бы хотелось иметь более высокий TPR при том же уровне FPR.

ROC-кривая для случайного угадывания

Рассмотрим классификатор, который случайно назначает классы, независимо от вектора признаков x\mathbf{x}, по формуле

y^(x)=sign(ξα),\hat{y}(\mathbf{x})=\text{sign}(\xi-\alpha),

где ξ\xi - равномерно распределённая случайная величина на отрезке [0,1][0,1]. Докажите, что ROC-кривая, соответствующая этому классификатору, будет диагональю TPR=FPR. Существуют ли классификаторы, для которых ROC-кривая проходит ниже этой прямой? Можем ли мы извлечь пользу из таких классификаторов?

Поскольку ROC-кривая описывает не один классификатор, а целое семейство классификаторов, параметризованных гиперпараметром α\alpha, то далее мы рассмотрим нахождение наилучшего классификатора из этого семейства.

Построение ROC-кривой по данным

При практическом построении ROC-кривой нам не нужно перебирать все вещественные пороги α\alpha, поскольку мы работаем с конечной выборкой

(x1,y1),(x2,y2),...(xN,yN)(\mathbf{x}_1,y_1),(\mathbf{x}_2,y_2),...(\mathbf{x}_N,y_N)

Мы рассчитываем относительную дискриминантную функцию нашего классификатора g(x)g(\mathbf{x}) для каждого объекта и сортируем все объекты по возрастанию этой функции:

g(x(1))g(x(2))...g(x(N))g\left(\mathbf{x}_{(1)}\right)\ge g\left(\mathbf{x}_{(2)}\right)\ge...\ge g\left(\mathbf{x}_{(N)}\right)

Далее ROC-кривая строится итеративно, стартуя из точки (FPR0,TPR0FPR_0,TPR_0)=(0,0) при движении вдоль значений g(x)g(\mathbf{x}) справа налево, перебирая в качестве пороговых α\alpha только следующие значения:

g(x(N)),g(x(N1)),...g(x(1)),g(x(1))1g\left(\mathbf{x}_{(N)}\right), g\left(\mathbf{x}_{(N-1)}\right),... g\left(\mathbf{x}_{(1)}\right), g\left(\mathbf{x}_{(1)}\right)-1

При переходе через объект положительного класса следующая точка ROC-кривой получается сдвигом вверх на 1N+\frac{1}{N_+}, поскольку на один верно-положительный объект стало больше, что повысит TPR на 1N+\frac{1}{N_+} при том же уровне FPR.

А при переходе через отрицательный - сдвигом вправо на 1N\frac{1}{N_-}, поскольку стало на один объект больше среди ложно-положительных срабатываний. FPR увеличится, а TPR останется неизменным.

Пример построения ROC-кривой показан на рисунке:

ROCcurveconstructionpng

Далее ROC-кривая может сглаживаться линейной интерполяцией между точками.

Площадь под ROC-кривой

Агрегированной мерой качества классификации служит площадь под ROC-кривой, называемая AUC (area under curve).

Классификатору, назначающему классы случайно независимо от входа, будет соответствовать диагональная ROC-кривая, площадь под которой равна 0.5.

Далее мы рассмотрим эквивалентное определение меры AUC как доли верно упорядоченных пар объектов, которое даёт простой алгоритм расчёта этой меры и более интуитивно.