Чи потрібно ще робити вибір функції під час використання алгоритмів регуляризації?


20

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

Ми знаємо, щоб уникнути перевитрати, ми можемо ввести штраф за регуляризацію вагових векторів.

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

Тоді ще потрібно зробити вибір функції перед запуском регуляризації L1, наприклад, Lasso ?. Технічно Лассо допомагає мені зменшити функції на штраф L1, то чому потрібен вибір функції перед запуском альго?

Я прочитав статтю дослідження, в якій говорилося, що виконання Anova тоді SVM дає кращі показники, ніж використання SVM. Тепер питання: SVM по суті робить регуляризацію, використовуючи норму L2. Для того, щоб досягти максимального запасу, це мінімізація норми весового вектора. Таким чином, він виконує регуляризацію в своїй об'єктивній функції. Тоді технічно такі алгоритми, як SVM, не повинні турбуватися щодо методів вибору функцій ?. Але у звіті все ще йдеться про те, що вибір Univariate Feature перед тим, як звичайний SVM є більш потужним.

Хтось із думками?


Я б поставив одне запитання - як регуляризація SVM працює з методами ядра? Рег. Норми L2 покладається на нормалізацію входів. Однак якщо ви використовуєте ядро ​​(наприклад, поліном), то ваші ефективні входи (тобто повночленні сили) більше не нормалізуються.
seanv507

Відповіді:


17

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

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

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

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


Що ви маєте на увазі під вкладеною перехресною валідацією? Чи застосовується перехресне підтвердження k-кратного N разів?
yasin.yazici

5

Дуже багато людей вважають, що регуляризація достатня, щоб подбати про сторонні змінні, і не потрібен вибір змінних, якщо ви належним чином регулярізуєте, зробите часткове об'єднання, створити ієрархічні моделі тощо, коли мета - точність прогнозування. Наприклад, якщо оцінка параметра для певної змінної до кінця або повністю видаляється з моделі ( ) насправді не ' не мають великої різниці в проблемах прогнозування.β J = 0,0001 β J = 0jβ^j=.0001β^j=0

Однак все ж є причини повністю видалити змінну.

  1. Іноді метою є не прогностична точність, а пояснення світового явища. Іноді хочеться знати, що виконують змінні, і не впливати на певну залежну змінну. У таких типах ситуацій парсимонійна модель є кращим способом розуміння та інтерпретації
  2. Ви налаштовуєте себе на ризик. Якщо ви залишите змінну яка справді не має ефекту, то ви налаштовуєте себе на можливість, що якщо ви збираєте різні дані, то змінна впливає на результати. Це особливо актуально для моделей, які знову і знову оновлюються за допомогою різних програм.β^j
  3. Причини обчислень - модель із меншою кількістю змінних зазвичай працює швидше, і вам не потрібно зберігати дані для цих сторонніх змінних.

2
Привіт TrynnaDoStat, я повністю погоджуюся з вашими пунктами 1 і 3. Але аргумент 2 насправді не всуває в точку. Якщо ви робите вибір функції з одним і тим же набором даних, ви також ризикуєте обрати неправильний набір функцій. Оскільки, здається, одна випадкова величина може добре корелювати зі змінною цілі в даних.
gstar2002

β^j

0

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

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

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

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

Нарешті, подивіться на нейронні мережі. Знову ж таки, це модель, яка має право ігнорувати невідповідні риси, а навчання за допомогою зворотного розповсюдження зазвичай сходяться до використання цікавих функцій. Однак відомо, що стандартний алгоритм тренінгу зближається набагато швидше, якщо входи "побілені", тобто масштабуються до одиничної дисперсії та з вилученою перехресною кореляцією (LeCun et al, 1998) . Тому, хоча вам не потрібно строго робити вибір функції, він може платити в чистому обсязі продуктивності, щоб зробити попередню обробку вхідних даних.

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


3
(1) Я не згоден з вашою першою пропозицією. Вибір функцій не зменшує кількість даних, але зменшує кількість функцій. Кількість екземплярів (зразків) залишається однаковою, і це може допомогти переобладнати, оскільки класифікатору потрібно менше параметрів (якщо це параметрична модель), щоб відповідати даним. Менше параметрів означає меншу потужність представлення, тому менше шансів на перевищення. (2) Який тип алгоритму вибору функцій ви згадали використовувати перед KNN? Звідки відомо, які функції будуть ефективнішими?
yasin.yazici

@ yasin.yazici: Скажіть, ви робите рукописну класифікацію, і ви викидаєте всі, крім верхнього лівого пікселя. Ви не просто зменшили кількість даних, які у вас були?
cfh

@chf Ні, це лише зменшує кількість функцій. Найменше, скажімо, набір даних MNIST, є 784 функції для кожного зразка та 60000 зразків. Якщо ви викинете частину своїх особливостей, у вас ще є 60000 зразків.
yasin.yazici

@ yasin.yazici: Моя думка, кількість зразків не збігається з кількістю даних. Дані - це вся матриця "зразків х ознак".
cfh

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

0

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

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


0

У випадку ласо, попередня обробка даних для видалення неприємних особливостей насправді є досить поширеною. Нещодавній документ, який обговорює способи цього, див . У скринінгових тестах Xiang et al для проблем Лассо . Загальна мотивація, згадана в роботі, яку я бачив, - це зменшити обчислювальний тягар обчислень рішення.

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