Змінна процедура вибору для двійкової класифікації


29

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

Ми можемо виправити позначення на послідовність: для , нехай є навчальним набором спостережень із групи . Отже - це розмір навчального набору. Встановлюємо як кількість ознак (тобто розмірність простору ознак). Нехай позначає - ту координату .{ x i 1 , , x i n i } i n 0 + n 1 = n p x [ i ] i x R pi{0,1}{x1i,,xnii}in0+n1=npx[i]ixRp

Будь ласка, дайте повні посилання, якщо ви не можете вказати деталі.

EDIT (оновлюється постійно): процедури, запропоновані у відповідях нижче

Оскільки це вікі спільноти, можливо більше обговорення та оновлення

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


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

пул ... багато означає 1000 можливостей або більше і менше 100 спостережень.
Робін Жирард

Відповіді:


18

Дуже популярним підходом є пенізована логістична регресія, в якій максимально збільшується сума ймовірності логарифмики та строку пеналізації, що складається з L1-норми ("ласо"), L2-норми ("хребет"), комбінації двох ("пружний"), або штраф, пов'язаний з групами змінних ("груповий ласо"). Цей підхід має ряд переваг:

  1. Він володіє сильними теоретичними властивостями, наприклад, див. Цю статтю Candes & Plan та тісні зв'язки зі стисненим зондуванням;
  2. Він має доступні експозиції, наприклад, в « Елементах статистичного навчання Фрідмана-Хасті-Тібширані» (доступний в Інтернеті);
  3. Це легко доступне програмне забезпечення для відповідності моделям. R має пакет glmnet, який дуже швидко працює і добре працює з досить великими наборами даних. Python має scikit-learn , який включає L1- та L2-пенізовану логістичну регресію;
  4. Це дуже добре працює на практиці, як показано в багатьох документах із розпізнавання зображень, обробки сигналів, біометрії та фінансів.

10

Я маю перевагу щодо випадкових лісів від Лео Брейман та Адель Катлер з кількох причин:

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

Деякі автори стверджували, що воно виконується так само, як і штрафні машини SVM або градієнти, що підсилюють градієнт (див., Наприклад, Cutler et al., 2009, для останньої точки).

Повне висвітлення його програм або переваг може бути поза темою, тому я пропоную Елементи статистичного навчання від Хасті та ін. (гл. 15) та Sayes et al. (2007) для подальшого читання.

І останнє, але не менш важливе, воно має приємну реалізацію в R, з пакетом randomForest . Інші пакети R також розширюють або використовують його, наприклад, вечірка та каре .

Список літератури:

Cutler, A., Cutler, DR, and Stevens, JR (2009). Деревоподібні методи, у високовимірному аналізі даних у дослідженнях раку , Li, X. та Xu, R. (ред.), Стор. 83-101, Спрингер.

Saeys, Y., Inza, I., and Larrañaga, P. (2007). Огляд методів відбору ознак у біоінформатиці. Біоінформатика , 23 (19) : 2507-2517.


7

Метрополіс сканування / MCMC

  • Виберіть кілька функцій випадковим чином для початку, тренуйте класифікатор лише на них і отримуйте помилку.
  • Внесіть деяку випадкову зміну в цей робочий набір - або видаліть одну функцію, додайте іншу випадково або замініть якусь функцію на ту, яка наразі не використовується.
  • Тренуйте новий класифікатор і отримуйте його помилку; зберігайте в dEрізниці помилку на новому наборі мінус помилку на попередньому наборі.
  • З вірогідністю min(1;exp(-beta*dE))прийміть цю зміну, інакше відхиліть її та спробуйте іншу випадкову зміну.
  • Повторюйте це тривалий час і нарешті поверніть робочий набір, який у глобальному масштабі досяг найменшої помилки.

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


5

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


3

Жадібний відбір вперед.

Кроки для цього методу:

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

Як ви «тренуєте» свій класифікатор? Імовірно, це робиться на навчальному наборі. Якщо це векторна машина підтримки (SVM), слід спробувати кілька параметрів під час тренувань. Чи встановлюється кожен тест на перевірку (перевірку)? Або ви використовуєте k-кратну перехресну перевірку? Скільки разів ви використовуєте валідацію (тест), щоб перевірити свою ефективність - імовірно, це точність. Вибачте за педантичність, але це неправильно визначена відповідь і ризикує переоцінити.
Thylacoleo

@Thylacoleo Це дуже грубий основний і жадібний метод. Часто ви тримаєте набір перевірки однаковий протягом пробігу, але все, що вам подобається, це нормально.
Пітер Сміт

2

Відставання назад.

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

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


2
Але питання говорить, що є більше змінних, ніж спостереження. Так що не можна починати з повного набору.
Роб Хайндман

В чому проблема?

2
Ви не можете помістити модель, яка має більше змінних, ніж спостереження. Існує недостатня ступінь свободи для оцінки параметрів.
Роб Хайндман

1
При розрахунку Фішера F, ви обчислити F , як (n - k - p) / (k - 1) * ...з nчислом спостережень, kчисло класів (2 тут) і pчисла змінних. n - 2 - p < 0коли n < p + 2(що тут справа), що призводить до F < 0. Хіба це не буде проблемою?
Матьє

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