Введение

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

Методы

1. Методы фильтрации

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

Методы фильтрации очень быстрые, но могут уступать по точности по сравнению с другими методами.

Вот некоторые примеры методов фильтрации:

а. Получение информации

Интуиция: IG вычисляет важность каждой функции, измеряя увеличение энтропии, когда функция задана или отсутствует.

Алгоритм:

IG(S, a) = H(S) — H(S | a)

Где IG (S, a) - это информация для набора данных S для переменной a для случайной переменной, H (S) - это энтропия для набора данных до любого изменения (описанного выше), а H (S | a) - условная энтропия для набора данных при наличии переменной a.

Пример кода:

б. mRMR (минимальная избыточность и максимальная релевантность)

Интуиция: он выбирает функции на основе их соответствия целевой переменной, а также их дублирования с другими функциями.

Алгоритм: он использует взаимную информацию (MI) двух случайных величин.

Для дискретных / категориальных переменных взаимная информация I двух переменных x и y определяется на основе их совместного вероятностного распределения p (x, y) и соответствующих предельных вероятностей p (y) и p (x):
Этот метод использует MI между функцией и классом как релевантность функции для класса, а MI между функциями как избыточность каждой функции.

Для каждого X в таблице S - это набор уже выбранных атрибутов. Y - целевая переменная.

Следовательно, полученная оценка mRMR учитывает как избыточность, так и релевантность для каждой функции. ЕСЛИ мы возьмем разницу обоих факторов, указанных выше, мы получим MID (разность взаимной информации), а если мы возьмем их соотношение, мы получим MIQ (коэффициент взаимной информации).

Рассматривая несколько примеров, было замечено, что MIQ работает лучше для большинства наборов данных, чем MID. Поскольку разделяющая комбинация релевантности и избыточности, кажется, приводит функции с наименьшей избыточностью.

Пример кода:

c. Хи-квадрат

Интуиция:

Он вычисляет корреляцию между функцией и целью и выбирает лучшие k функций в соответствии с их оценкой хи-квадрат, рассчитанной с использованием следующего критерия хи-квадрат.

Алгоритм:

Где:

c = степени свободы

O = наблюдаемое значение (я)

E = ожидаемое значение (я)

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

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

Пример кода:

d. Anova

Интуиция:

Мы выполняем Anova между объектами и целью, чтобы проверить, принадлежат ли они к одной и той же популяции.

Алгоритм:

Если значение «variance_between / variance_within» меньше критического значения (оценивается с использованием таблицы журнала). Библиотека возвращает оценку и значение p, для p 95% для них принадлежат к одной и той же популяции и, следовательно, связаны между собой. Мы выбираем k лучших взаимосвязанных функций в соответствии с оценкой, полученной Anova.

Пример кода:

2. Методы оболочки

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

Методы оболочки работают очень хорошо с точки зрения точности, но уступают по скорости по сравнению с другими методами.

Вот некоторые примеры методов-оберток:

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

б. Обратное исключение. В этом методе мы начинаем со всех элементов и удаляем элементы по одной, если их отсутствие увеличивает оценку модели. Мы делаем это до тех пор, пока не будет замечено никаких улучшений при удалении какой-либо функции.

c. Удаление рекурсивных функций. Это жадный алгоритм оптимизации, который направлен на поиск наиболее эффективных подмножеств функций. Он неоднократно создает модели и оставляет в стороне лучшие или худшие функции на каждой итерации. Он строит следующую модель с левыми элементами, пока не будут исчерпаны все функции. Затем он ранжирует функции в порядке их исключения.

Пример кода:

3. Встроенные методы

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

Он сочетает в себе качества методов фильтрации и оболочки.

Наиболее часто используемые методы выбора встроенных функций - это методы регуляризации. Методы регуляризации также называются методами штрафов, поскольку они вводят штраф для целевой функции, который уменьшает количество функций и, следовательно, сложность модели.

Примерами алгоритмов регуляризации являются LASSO, Elastic Net и Ridge Regression.