Зменшення кількості рівнів невпорядкованої категоричної змінної предиктора


11

Я хочу навчити класифікатор, скажімо, SVM, або випадковий ліс, або будь-який інший класифікатор. Однією з особливостей у наборі даних є категоріальна змінна з 1000 рівнями. Який найкращий спосіб зменшити кількість рівнів у цій змінній. У R є функція, що називається combine.levels()в пакеті Hmisc , яка поєднує в собі нечасті рівні, але я шукав інші пропозиції.


Чи категорична змінна не упорядкована? Приблизно, скільки у вас випадків? Який розподіл частоти по категоріальній змінній?
Джеромі Англім

Рівні не впорядковані. У мене є близько 10 000 спостережень. Розподіл частоти такий: рівень А виявляється приблизно в 11% спостережень. Рівень B з'являється у 8%. Рівень c з'являється у 5%. Близько 15 з цих рівнів охоплюють 50% спостережень у наборі даних.
суботня

Відповіді:


9

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

Скористайтеся двома простими речами, якщо ваш рівень є порядковим:

  1. Бінь їх. Наприклад, 0 = (0 250), 1 = (251 500) і т. Д. Ви можете вибрати обмеження, щоб кожен контейнер мав рівну кількість елементів.
  2. Ви також можете прийняти журнальне перетворення рівнів. Це зменшить діапазон вниз.

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


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

1
@FrankHarrell Приходять до уваги два підходи: Аналіз змінної латентної змінної POlytom буде один (cran.r-project.org/web/packages/poLCA/poLCA.pdf), аналіз відповідності інший (наприклад, statmethods.net/advstats/ca. html).
Майк Хантер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.