Розуміння кривої ROC


57

У мене виникають проблеми з розумінням кривої ROC.

Чи є якась перевага / покращення в області під кривою ROC, якщо я будую різні моделі з кожного унікального підмножини навчального набору і використовую його для створення ймовірності? Наприклад, якщо має значення { , , , , б , б , б , б } , і я побудувати модель А за допомогою від 1-го 4 - го значення у і 8-го 9 - значення у і будувати модель B за допомогою даних, що залишилися на поїзді. Нарешті, генеруйте ймовірність. Будь-які думки / коментарі будуть дуже вдячні.y{a,a,a,a,b,b,b,b}AayyB

Ось r-код для кращого пояснення мого питання:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Так що моє запитання, площа під ROC кривої pred_combineVS pred_full.


3
Кращий приклад міг би зробити багато для покращення питання.
mpiktas

Я розумію, що ви хочете збільшити AUC, вибравши певні зразки? Якщо це ваша мета, я твердо переконаний, що такий підхід з упередженим вибором вибірки є абсолютно неправильним, принаймні, якщо ваша мета - знайти хороший показник ефективності класифікації.
rapaio

Відповіді:


174

Я не впевнений, що у мене виникло питання, але оскільки назва вимагає пояснення кривих ROC, я спробую.

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

Щоб мати можливість використовувати криву ROC, ваш класифікатор повинен бути рейтинговим - тобто він повинен мати можливість ранжирувати приклади так, що ті, хто має вищий ранг, мають більше шансів на позитивні. Наприклад, логістична регресія видає ймовірності, що є балом, який ви можете використовувати для ранжування.

Малювання кривої ROC

Дано набір даних та класифікатор класифікації:

  • упорядкуйте тестові приклади за балом від найвищого до найнижчого
  • (0,0)
  • x
    • x1/pos
    • x1/neg

posneg

Ця приємна анімована картинка повинна зображати цей процес чіткіше

побудова кривої

yx

Площа під РПЦ

площа під рок

Площа під кривою ROC (заштрихована) природно показує, наскільки далека крива від базової лінії. Для базової лінії це 0,5, а для ідеального класифікатора - 1.

Більше про AUC ROC можна прочитати в цьому запитанні: що означає AUC і що це?

Вибір найкращого порогу

Я коротко охарактеризую процес вибору найкращого порогу, а більш детальну інформацію можна знайти у посиланні.

Щоб вибрати найкращий поріг, ви бачите кожну точку кривої ROC як окремий класифікатор. Цей міні-класифікатор використовує бал, отриманий очкою, як межу між + та - (тобто він класифікується як + всі точки вище поточного)

Залежно від частки позиції / негації в нашому наборі даних - паралельно базовій лінії у випадку 50% / 50% - ви будуєте лінії точності ISO і приймаєте найвищу точність.

Ось малюнок, який ілюструє це, і для деталей я знову запрошую вас до довідки

вибір найкращого порогу

Довідково


Дякую за чудовий коментар! Мені шкода, що я не міг підказати за вашу відповідь. Здається, мені потрібно мати більше 15 репутацій :(
Tay Shin

Цікаво, що ваш розмір кроку повинен залежати від кількості позитивних / негативних міток, виданих правильним класифікатором? Тобто, у gif розмір кроку вгору дорівнює .1, якби у вас була додаткова позитивна мітка (замість негативної мітки), то "крива" закінчилася б на 1,1 по вертикальній осі (або, можливо, мені щось не вистачає ?). Отже, у такому випадку розмір кроку повинен бути меншим?
кифос

Ні, розмір кроку залежить від кількості позитивних / негативних прикладів у наборі даних, а не від точності класифікатора.
Олексій Григорьов

2
@gung зрозумів. Олексій: замість позитивних та негативних прикладів, я думаю, це має бути: справжні позитиви та хибні позитиви. Можливо, ви зможете побачити мою редакцію відповіді, яку було повернено Гунгом. дякую
Ескахатор

3
@AlexeyGrigorev, люблю відповідь, яку ви даєте, і голосуйте. Я не впевнений, чи є два визначення ROC. Я маю на увазі тут визначення ROC ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), вісь x має бути помилковою позитивною швидкістю, яка є (# прогнози мають бути позитивними, але повинні бути негативними) / (# від загальної кількості негативний), я думаю, що у посиланні, я думаю, що вісь x не малює хибну позитивну швидкість, яка не враховує (# від загального негативного)?
Лінь Ма
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.