Вибір функцій для підтримуючих векторних машин


9

Моє питання триразове

У контексті "Kernelized" підтримують векторні машини

  1. Чи бажаний вибір змінних / особливостей - тим більше, що ми регулюємо параметр C для запобігання перенастроювання, а головним мотивом введення ядер до SVM є збільшення розмірності проблеми, у такому випадку зменшення розмірів за допомогою зменшення параметрів здається протиінтуїтивним
  2. Якщо відповідь на 1-е питання - "НІ", то на яких умовах змінилася б відповідь, яку слід пам’ятати?
  3. Чи є якісь хороші методи, які намагалися привести до зменшення можливостей для SVM в бібліотеці python, що вивчає scikit - я спробував метод SelectFpr і шукаю людей, які мають досвід різних методів.

1
Вибір функцій завжди допоможе, якщо для початку ваші початкові функції не будуть надто якісними. Sklearn пропонує безліч різних бібліотек вибору функцій ( scikit-learn.org/stable/modules/feature_selection.html ) Я частково ставлюсь до RFE.
Девід

1
Ви не згадали про свій контекст - зауважте, що якщо це в бізнес-контексті, кожна функція, яка залишається в моделі, потребує обслуговування на певному рівні - є буквальна грошова вартість, якщо у вас є більше змінних, у тому сенсі, що наприклад, потрібно більше зусиль щодо збору даних, часу DBA та часу програмування. Таке врахування, очевидно, не застосовується, якщо це для комп’ютера Kaggle чи подібного, і якщо використання додаткових 200 доступних функцій у наборі даних дає вам підвищення на 0,01% продуктивності, на яку ви витрачаєте гроші.
Роберт де Граф

Відповіді:


3

Особисто мені подобається ділити вибір функції на два:

  • непідконтрольний вибір функцій
  • підбір контрольованих функцій

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

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

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

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

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