Как определить оптимальный порог для классификатора и сгенерировать ROC-кривую?

27

Допустим, у нас есть классификатор SVM, как мы генерируем кривую ROC? (Как теоретически) (потому что мы генерируем TPR и FPR с каждым порогом). И как определить оптимальный порог для этого классификатора SVM?

RockTheStar
источник
2
Вероятно, это поможет stackoverflow.com/questions/28719067/…
prashanth

Ответы:

14

Используйте классификатор SVM для классификации набора аннотированных примеров, и можно определить «одну точку» в пространстве ROC на основе одного прогноза примеров. Предположим, что количество примеров составляет 200, сначала посчитайте количество примеров из четырех случаев.

labeledtruelabeledfalsepredictedtrUе7128преdясTеdеaLsе5744


Затем вычислите TPR (истинная положительная ставка) и FPR (ложная положительная ставка). и F P R = 28 / ( 28 + 44 ) = 0,3889. В пространстве ROC ось X является FPR, а ось Y - TPR. Таким образом, точка ( 0,3889 , 0,5547 ) получается. Чтобы нарисовать ROC-кривую, просто (1) Отрегулируйте некоторое пороговое значение, которое контролирует количество примеров, помеченных как true или false.Tпрзнак равно71/(71+57)знак равно0,5547Fпрзнак равно28/(28+44)знак равно0,3889(0,3889,0,5547)



Например, если концентрация определенного белка выше α% означает заболевание, разные значения α дают разные конечные значения TPR и FPR. Пороговые значения могут быть просто определены способом, аналогичным поиску по сетке; маркировать обучающие примеры различными пороговыми значениями, обучать классификаторы различными наборами помеченных примеров, запускать классификатор на тестовых данных, вычислять значения FPR и выбирать пороговые значения, охватывающие низкий (близкий к 0) и высокий (близкий к 1) FPR значения, т. е. близкие к 0, 0,05, 0,1, ..., 0,95, 1

(2) Создание множества наборов аннотированных примеров
(3) Запуск классификатора для наборов примеров
(4) Вычисление точки (FPR, TPR) для каждого из них
(5) нарисуйте окончательную кривую ROC

Некоторые подробности можно проверить по адресу http://en.wikipedia.org/wiki/Receiver_operating_characteristic .

Кроме того, эти две ссылки полезны для определения оптимального порога. Простой метод состоит в том, чтобы взять тот с максимальной суммой истинно положительных и ложно отрицательных ставок. Другие более точные критерии могут включать другие переменные, включающие различные пороговые значения, такие как финансовые затраты и т. Д.
Http://www.medicalbiostatistics.com/roccurve.pdf
http://www.kovcomp.co.uk/support/XL-Tut/life-ROC -кривый-приемник операционной characteristic.html

Том
источник
5
Спасибо за ваше объяснение, а как насчет оптимального порога?
RockTheStar
1
Извините, я узнал, что оптимальный порог - это особый термин перед тем, как После поиска я обнаружил, что глава «3.5 Выбор оптимального порога» книги «Анализ кривых рабочих характеристик приемника с помощью SAS» в Google Книге содержит некоторые подробные пояснения по выбору оптимального порога. Два широко используемых способа, описанных на нем, - это выбрать порог, который сделает полученное двоичное предсказание (1) максимально близким к идеальному предиктору. (2) как можно дальше от неинформативного предиктора
Том
Круто, где я могу найти ссылку? Благодарность!
RockTheStar
2
Да, что означает «далеко от неинформативного предиктора»? Пожалуйста, добавьте ссылку.
Симона
1
Кроме того, я также только что прочитал, что существует множество критериев для определения оптимального порога. Например, простой критерий состоит в том, что среди всех пороговых значений выбирают критерий с максимальной суммой истинно-положительных и ложно-отрицательных значений. Есть и другие, более сложные критерии.
Том
3

Действительно простой способ выбрать порог состоит в том, чтобы взять медианные предсказанные значения положительных случаев для тестового набора. Это становится вашим порогом.

Порог приближается относительно того же порога, который вы получили бы, используя кривую roc, где истинно положительная скорость (tpr) и 1 - ложноположительная скорость (fpr) перекрываются. Этот крест tpr (cross) 1-fpr максимизирует истинное положительное значение, минимизируя ложное отрицание.

Иш Митч
источник
Понимаю. Медианное прогнозируемое значение. Спасибо за предложение.
RockTheStar
2
Есть ли источник для этого метода?
Эквихуа
1
Это эквивалентно выбору точки с TPR = 0,5 на кривой ROC, что звучит действительно произвольно.
Бананин
Медианное прогнозируемое значение? А что будет, если у вас классовый дисбаланс 1000: 1?
ldmtwo
3

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

dr_rk
источник
2
Как это сделать автоматически?
ldmtwo