Процедура выбора переменной для двоичной классификации

29

Какие переменные / характеристики вы предпочитаете для бинарной классификации, когда в наборе обучения гораздо больше переменных / функций, чем наблюдений? Цель здесь состоит в том, чтобы обсудить, какова процедура выбора признаков, которая наилучшим образом уменьшает ошибку классификации.

Мы можем зафиксировать обозначения для согласованности: для пусть { x i 1 , , x i n i } будет обучающим набором наблюдений из группы i . Таким образом, n 0 + n 1 = n - размер обучающего набора. Мы устанавливаем p как число объектов (т. Е. Размерность пространства объектов). Пусть x [ i ] обозначает i-ю координату xi{0,1}{x1i,,xnii}in0+n1=npx[i]i .xRp

Пожалуйста, дайте полные ссылки, если вы не можете дать детали.

РЕДАКТИРОВАТЬ (обновляется постоянно): процедуры, предложенные в ответах ниже

Так как это вики сообщества, может быть больше обсуждений и обновлений.

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

робин джирард
источник
Это вопрос или бассейн? Если последнее, то это должно быть сообщество вики. Если первое, расскажите подробнее о том, чего вы хотите достичь? Например, это все релевантный или минимально оптимальный выбор? Сколько это много? Насколько сложна проблема классификации?
пул ... много означает 1000 объектов или более и менее 100 наблюдений.
Робин Жирар

Ответы:

18

Очень популярным подходом является штрафная логистическая регрессия, при которой максимизируется сумма логарифмического правдоподобия и штрафного термина, состоящего из L1-нормы («лассо»), L2-нормы («гребень»), комбинации двух («эластичный») или штраф, связанный с группами переменных («групповое лассо»). Этот подход имеет несколько преимуществ:

  1. Он имеет сильные теоретические свойства, например, см. Эту статью Candes & Plan и тесные связи со сжатым зондированием;
  2. Имеются доступные экспозиции, например, в « Элементах статистического обучения » Фридмана-Хасти-Тибширани (доступны онлайн);
  3. Он имеет легко доступное программное обеспечение для моделей. R имеет пакет glmnet , который очень быстрый и хорошо работает с довольно большими наборами данных. Python имеет scikit-learn , который включает в себя логистическую регрессию, наказанную L1 и L2;
  4. На практике это работает очень хорошо, как показано во многих прикладных документах в области распознавания изображений, обработки сигналов, биометрии и финансов.
с промежутками
источник
10

Я немного предпочитаю « Случайные леса » Лео Бреймана и Адель Катлер по нескольким причинам:

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

Некоторые авторы утверждали, что он работал так же, как и штрафные 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.

хл
источник
7

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

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

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

user88
источник
5

Если вас интересует только производительность обобщения, вам, вероятно, лучше не выполнять выбор объектов и вместо этого использовать регуляризацию (например, регрессию гребня). В сообществе машинного обучения возникло несколько открытых проблем с выбором функций, и методы, основанные на регуляризации, а не на выборе функций, обычно работают по меньшей мере так же, если не лучше.

Дикран Сумчатый
источник
3

Жадный форвард выбора.

Шаги для этого метода:

  • Убедитесь, что у вас есть поезд и проверочный набор
  • Повторите следующее
    • Обучите классификатор каждой отдельной функции, которая еще не выбрана, и всем ранее выбранным функциям
    • Если результат улучшится, добавьте наиболее эффективную функцию, иначе остановите процедуру
Питер Смит
источник
Как вы «тренируете» свой классификатор? Предположительно это делается на тренировочном наборе. Если это машина опорных векторов (SVM), есть несколько параметров, которые нужно попробовать во время обучения. Каждый из них проверен на соответствие проверке (тесту)? Или вы используете перекрестную проверку K-Fold? Сколько раз вы используете набор валидации (теста) для проверки вашей производительности - вероятно, это точность. Извините за педантичность, но это плохо сформулированный ответ и рискует переопределиться.
Thylacoleo
@Thylacoleo Это очень грубый и жадный метод. Часто вы сохраняете свой набор проверок одинаковым для прогонов, но все, что вам нравится, в порядке.
Питер Смит
2

Обратное устранение.

Начните с полного набора, затем итеративно обучите классификатор оставшимся объектам и удалите элемент с наименьшим значением, остановитесь, когда ошибка классификатора быстро увеличивается / становится неприемлемо высокой.

Важность может быть даже получена путем итеративного удаления каждого признака и проверки увеличения ошибки или адаптации из классификатора, если он его производит (как в случае с произвольным лесом).

user88
источник
2
Но вопрос говорит, что есть больше переменных, чем наблюдений. Поэтому невозможно начать с полного набора.
Роб Хиндман
В чем проблема?
2
Вы не можете соответствовать модели, которая имеет больше переменных, чем наблюдений. Для оценки параметров недостаточно степеней свободы.
Роб Хиндман
1
При расчете Фишера F, вы вычислить F , как (n - k - p) / (k - 1) * ...с nчислом наблюдений, kчисло классов (2 здесь) и pчисла переменных. n - 2 - p < 0когда n < p + 2(что здесь имеет место), что приводит к F < 0. Разве это не проблема?
Матье
3
Регуляризованная или полностью байесовская регрессия позволила бы получить уникальное решение с полным набором предикторов для начала - несомненно, то же самое относится и к некоторым другим методам ML.
Scortchi - Восстановить Монику