Чому саме вибірка?


42

Припустимо, я хочу вивчити класифікатор, який передбачає, чи електронний лист є спамом. І припустимо, що лише 1% електронних листів - це спам.

Найпростіше зробити це - дізнатися тривіальний класифікатор, який говорить, що жоден з електронних листів не є спамом. Цей класифікатор дав би нам 99% точності, але він не дізнався би нічого цікавого та мав би 100% помилкових негативів.

Щоб вирішити цю проблему, люди сказали мені "пробити вибірку" або дізнатися на підмножині даних, де 50% прикладів є спамом, а 50% - не спамом.

Але я переживаю за такий підхід, оскільки як тільки ми створимо цей класифікатор і почнемо використовувати його на реальному корпусі електронних листів (на відміну від тестового набору 50/50), він може передбачити, що багато електронних листів спамуються, коли вони ' реально ні. Просто тому, що звично бачити набагато більше спаму, ніж насправді є в наборі даних.

То як ми можемо виправити цю проблему?

("Підвищення рівня", або повторення позитивних прикладів тренувань кілька разів, тому 50% даних є позитивними прикладами тренувань, схоже, страждають від подібних проблем.)

Відповіді:


37

Більшість моделей класифікації насправді не дають бінарного рішення, а швидше постійного значення рішення (наприклад, логістичні регресійні моделі видають ймовірність, SVM видають підписану відстань до гіперплану, ...). Використовуючи значення рішення, ми можемо класифікувати тестові зразки, від «майже напевно позитивних» до «майже напевно негативних».

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

Якщо припустити, що модель краща за випадкову, можна інтуїтивно побачити, що підвищення порогу позитивної класифікації (що призводить до менш позитивних прогнозів) збільшує точність моделі за рахунок зниження виклику і навпаки.

Розглянемо SVM як інтуїтивний приклад: головне завдання - дізнатися орієнтацію роздільної гіперплани. У цьому може допомогти перемотування вгорі або пониження (я рекомендую віддати перевагу підвищеному рівню порівняно над зменшенням розміщення). Коли орієнтація гіперплану хороша, ми можемо грати з порогом прийняття рішення (наприклад, підписана відстань до гіперплану), щоб отримати бажану частку позитивних прогнозів.


Дякую, це було дуже корисно. Як ви знаєте, яким повинен бути поріг? Ви хочете встановити поріг таким чином, щоб частка позитивних прогнозів дорівнювала частці позитивних прикладів у сукупності?
Джессіка

2
@ Джессіка Як я вже згадував, зручним способом вибору порогу є криві експлуатаційних характеристик приймача (ROC). Кожному порогу відповідає точка в просторі ROC. Під час побудови кривої ви можете вибрати поріг виходячи з того, що відповідає вашим конкретним потребам. (Ви також можете використати криві точності відкликання як альтернативу)
Марк Клайсен

Я не згоден, що відстань точки тесту до гіперплану, засвоєного СВМ, - це будь-яка міра впевненості прогнозу. Докладаються зусилля, щоб зробити конфіденційність прогнозування виводу SVM. Наприклад, шукайте масштаб Платта. Але це не так добре, як Гауссова класифікація процесів (впевненість прогнозу).
Сєда

1
Масштабування @Seeda Platt перетворює значення ймовірності рішень взуття. Масштабування Платта настільки ж просто, як виконання (масштабованих) значень рішення за допомогою логістичної функції, яка монотонно зростає і, отже, не впливає на ранжирування (= впевненість). Все, що він робить - це відображення виводу з в . R[0,1]
Marc Claesen

@MarcClaesen Я не пропоную використовувати масштаб Платта; це "спроба" створити конфіденційність передбачення, але є кращі альтернативи. Все, що я говорю, - це те, що використовувати відстань до гіперплану не має сенсу і переглядаючи літературу, я ніколи не стикався з нею, хоча це перше, що спадає на думку, намагаючись створити конфіденційність з SVM.
Седа

14

Справжня проблема полягає у виборі метрики:% точність - це поганий показник успіху моделі на неврівноваженому наборі даних (саме з тієї причини, яку ви згадуєте: доцільно досягти 99% точності в цьому випадку).

Балансування вашого набору даних перед встановленням моделі є поганим рішенням, оскільки воно зміщує вашу модель і (ще гірше) викидає потенційно корисні дані.

Вам набагато краще врівноважувати показник точності, а не врівноважувати свої дані. Наприклад , ви могли б використовувати зважену точність при оцінці ви модель: (error for the positive class + error for the negative class)/2. Якщо ви прогнозуєте всі позитивні чи всі негативні, цей показник буде 50%приємною властивістю.

На мою думку, єдиною причиною зменшення вибірки є те, що у вас занадто багато даних і не вдається підходити до вашої моделі. Багато класифікаторів (наприклад, логістична регресія) добре спрацюють із неврівноваженими даними.


Чи можна запитати, як класифікатори можуть справлятись із незбалансованими даними? Можливо, це лише мої дані, але я спробував тренувальну логістичну регресію, випадкові ліси та моделі C5.0 на своїх тренувальних даних, як незбалансований, так і збалансований за допомогою змішаного перегляду / підкреслення. Моделі, що навчаються на незбалансованих даних, на моєму тестовому наборі працюють набагато гірше, ніж ті, що навчаються на збалансованих даних.
Seanosapien

13

Як завжди, @Marc Claesenяк чудова відповідь.

Я просто додам, що ключовою концепцією, яка, здається, відсутня, є концепція функції витрат . У будь-якій моделі у вас є неявна або явна вартість помилкових негативів до помилкових позитивів (FN / FP). Для описаних незбалансованих даних часто бажають мати співвідношення 5: 1 або 10: 1. Існує багато способів впровадження функцій витрат у моделі. Традиційний метод - нав'язувати обмеження ймовірностей на ймовірності, вироблені моделлю - це добре підходить для логістичної регресії.

Метод, який застосовується для суворих класифікаторів, які, природно, не оцінюють ймовірності, полягає в тому, щоб підкреслити клас більшості у співвідношенні, яке буде індукувати цікаву функцію, яка вас зацікавила. Зауважте, що якщо ви будете вибіркою на рівні 50/50, ви викликаєте функцію довільної вартості. Функція витрат відрізняється, але настільки ж довільна, як якщо б ви взяли вибірку за коефіцієнтом поширеності. Часто ви можете передбачити відповідний коефіцієнт вибірки, який відповідає вашій вартості (зазвичай це не 50/50), але більшість практикуючих, з якими я говорив, просто спробують пару коефіцієнтів вибірки та обрати найбільш близьке до їх вартості функцію.


2
Дякую, що ви довели це, це цікава ідея, яку я не розглядав. Як ви можете визначити, який коефіцієнт вибірки відповідає вашій вартості?
Джессіка

8

Відповідаючи на запитання Джессіки безпосередньо - одна з причин пониження дискретизації - це коли ви працюєте з великим набором даних і стикаєтесь з обмеженнями пам’яті на своєму комп’ютері або просто хочете скоротити час обробки. Недостатній вибір (тобто взяття випадкової вибірки без заміни) з негативних випадків зменшує набір даних до більш керованого розміру.

Ви згадали про використання "класифікатора" у своєму питанні, але не вказали, який саме. Один класифікатор, якого ви можете уникнути, - це дерева рішень. Запускаючи просте дерево рішень за даними про рідкісні події, я часто виявляю, що дерево будує лише один корінь, враховуючи, що він має труднощі розділити так мало позитивних випадків на категорії. Можливо, є більш досконалі методи підвищення продуктивності дерев для рідкісних подій - я не знаю жодної вершини голови.

Тому використання логістичної регресії, яка повертає неперервне передбачуване значення ймовірності, як запропонував Марк Класен, є кращим підходом. Якщо ви здійснюєте логістичну регресію даних, коефіцієнти залишаються неупередженими, незважаючи на те, що записів менше. Вам доведеться відрегулювати перехоплення, , від регресії, проведеної в результаті вибірки, згідно з формулою Hosmer і Lemeshow, 2000:β0

βc=β0log(p+1p+)

де - частка позитивних випадків у вашій кількості населення, що перебуває до скасування.p+

Визначити бажаний поріг ідентифікатора спаму за допомогою ROC можна здійснити, спершу оцінюючи повний набір даних з коефіцієнтами моделі, відстежуваними в наборі даних про вибірки, а потім класифікуючи записи від найвищої до найнижчої прогнозованої ймовірності спаму. Далі візьміть найкращі занесених записів, де - будь-який поріг, який ви хочете встановити (100, 500, 1000 тощо), а потім обчисліть відсоток помилкових позитивних випадків у перших випадках та відсоток помилкових негативних випадків у решта нижнього рівня - випадків, щоб знайти правильний баланс чутливості / специфічності, який відповідає вашим потребам.nnnNn


3

Звичайно, якщо класифікувати все як "не спам", ви можете сказати, що, надіславши 100 листів, він класифікує 99 з них правильно, але він також класифікується як "не спам", єдиний, позначений як спам (100% помилково позитивний). Виявляється, показник, який ви вибрали для оцінки алгоритму, не адаптується. Це відео є прикладом цієї концепції.

Грубо кажучи, врівноваження набору даних дозволяє зважувати помилки під час класифікації. Алгоритм, який використовує незбалансований навчальний набір, імовірно, не навчиться розмежовувати функції, оскільки це не надасть великого значення тому, що неправильно класифікує дані мізерного класу.


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.