Какие переменные / характеристики вы предпочитаете для бинарной классификации, когда в наборе обучения гораздо больше переменных / функций, чем наблюдений? Цель здесь состоит в том, чтобы обсудить, какова процедура выбора признаков, которая наилучшим образом уменьшает ошибку классификации.
Мы можем зафиксировать обозначения для согласованности: для пусть { x i 1 , … , x i n i } будет обучающим набором наблюдений из группы i . Таким образом, n 0 + n 1 = n - размер обучающего набора. Мы устанавливаем p как число объектов (т. Е. Размерность пространства объектов). Пусть x [ i ] обозначает i-ю координату x .
Пожалуйста, дайте полные ссылки, если вы не можете дать детали.
РЕДАКТИРОВАТЬ (обновляется постоянно): процедуры, предложенные в ответах ниже
- Жадный выбор вперед Процедура выбора переменной для двоичной классификации
- Обратное устранение Процедура выбора переменных для бинарной классификации
- Метрополис сканирования / MCMC Процедура выбора переменной для двоичной классификации
- оштрафованная логистическая регрессия Процедура выбора переменной для двоичной классификации
Так как это вики сообщества, может быть больше обсуждений и обновлений.
У меня есть одно замечание: в определенном смысле вы все даете процедуру, которая позволяет упорядочивать переменные, но не выбирать переменные (вы довольно уклончивы в том, как выбрать количество функций, я полагаю, вы все используете перекрестную проверку?) ответы в этом направлении? (так как это вики сообщества, вам не нужно быть автором ответов, чтобы добавить информацию о том, как выбрать количество переменных? Я открыл вопрос в этом направлении здесь Перекрестная проверка в очень высоком измерении (чтобы выбрать число используемые переменные в очень высокой размерной классификации) )
Ответы:
Очень популярным подходом является штрафная логистическая регрессия, при которой максимизируется сумма логарифмического правдоподобия и штрафного термина, состоящего из L1-нормы («лассо»), L2-нормы («гребень»), комбинации двух («эластичный») или штраф, связанный с группами переменных («групповое лассо»). Этот подход имеет несколько преимуществ:
источник
Я немного предпочитаю « Случайные леса » Лео Бреймана и Адель Катлер по нескольким причинам:
Некоторые авторы утверждали, что он работал так же, как и штрафные SVM или Grastent Boosting Machines (последний пункт см., Например, Cutler et al., 2009).
Полный охват его приложений или преимуществ может быть не по теме, поэтому я предлагаю элементы статистического обучения от Hastie et al. (глава 15) и Sayes et al. (2007) для дальнейшего чтения.
Наконец, что не менее важно, у него есть хорошая реализация в R с пакетом randomForest . Другие пакеты R также расширяют или используют его, например, party и caret .
Ссылки:
Катлер А., Катлер Д.Р. и Стивенс Дж.Р. (2009). Древовидные методы, в анализе многомерных данных в исследованиях рака , Li, X. и Xu, R. (eds.), С. 83-101, Springer.
Saeys Y., Inza I. и Larrañaga P. (2007). Обзор методов выбора признаков в биоинформатике. Биоинформатика , 23 (19) : 2507-2517.
источник
Метрополис сканирования / MCMC
dE
разнице ошибку в новом наборе минус ошибка в предыдущем наборе.min(1;exp(-beta*dE))
примите это изменение, в противном случае отклоните его и попробуйте другое случайное изменение.Вы можете расширить его с помощью более мудрого управления
beta
параметром. Более простой способ - использовать моделируемый отжиг, когда вы увеличиваетеbeta
(понижаете температуру по физической аналогии) с течением времени, чтобы уменьшить флуктуации и довести алгоритм до минимума. Сложнее использовать обмен репликами .источник
Если вас интересует только производительность обобщения, вам, вероятно, лучше не выполнять выбор объектов и вместо этого использовать регуляризацию (например, регрессию гребня). В сообществе машинного обучения возникло несколько открытых проблем с выбором функций, и методы, основанные на регуляризации, а не на выборе функций, обычно работают по меньшей мере так же, если не лучше.
источник
Жадный форвард выбора.
Шаги для этого метода:
источник
Обратное устранение.
Начните с полного набора, затем итеративно обучите классификатор оставшимся объектам и удалите элемент с наименьшим значением, остановитесь, когда ошибка классификатора быстро увеличивается / становится неприемлемо высокой.
Важность может быть даже получена путем итеративного удаления каждого признака и проверки увеличения ошибки или адаптации из классификатора, если он его производит (как в случае с произвольным лесом).
источник
(n - k - p) / (k - 1) * ...
сn
числом наблюдений,k
число классов (2 здесь) иp
числа переменных.n - 2 - p < 0
когдаn < p + 2
(что здесь имеет место), что приводит кF < 0
. Разве это не проблема?