📊 Построение и отбор признаков. Часть 2: feature selection
Мы уже знаем, что такое признаки и почему они важны в моделях машинного обучения. Попробуем разобраться со следующей после построения “фич” техникой – их отбором.
Что такое отбор признаков?
В первой статье мы разобрались с построением признаков. В нашей таблице есть свежие сгенерированные “фичи”, а также некоторые исходные данные. Теперь важным моментом является то, какие из них использовать, так как существует бесконечное число возможных преобразований.
«Прогонка» всех признаков в модели, чтобы посмотреть, какие из них работают – плохая идея. На самом деле алгоритмы работают плохо, когда в них попадает слишком много “фич”. Как решить эту проблему? При помощиотбора признаков.
Отбор признаков (feature selection) – это оценка важности того или иного признака с помощью алгоритмов машинного обучения и отсечение ненужных.
Существует масса алгоритмов, которые преобразуют набор со слишком большим количеством признаков в управляемое подмножество. Как и в случае с построением признаков, для разных типов данных оптимальны разные способы. Более того, при выборе алгоритма необходимо учитывать наши цели, что мы хотим сделать с обрабатываемым датасетом.
Выбор наиболее оптимальных признаков из множества существующих – непростая задача. Большое их количество значительно увеличивает время вычислений, к тому же, появляется угроза переобучения.
Для решения проблемы существует несколько общих методов, которые относятся к одной из следующих категорий.
1. Методы фильтрации (filter methods)
Выбирают внутренние свойства признаков – они быстрее и менее затратны с точки зрения вычислений, чем методы-оболочки. При работе с данными большой размерности в вычислительном отношении дешевле использовать методы фильтрации.
Сбор информации (Information Gain, IG)
Вычисляет уменьшение энтропии в результате преобразования набора данных. Его можно использовать для отбора признаков путем оценки информационного прироста каждой переменной в контексте целевой переменной.
Критерий хи-квадрат (Chi-square Test)
Используется для категориальных признаков в датасете. Мы вычисляем хи-квадрат между каждым признаком и целью, после выбираем желаемое количество “фич” с лучшими показателями. Чтобы правильно применить критерий для проверки связи между различными функциями в наборе данных и целевой переменной, должны быть выполнены следующие условия: категориальные переменные, которые выбираются независимо, и частота значений > 5.
Критерий Фишера (F-тест)
Критерий Фишера – один из наиболее широко используемых методов контролируемого выбора признаков. Алгоритм, который мы будем использовать, возвращает ранги переменных на основе оценки критерия в порядке убывания, после чего уже следует их отбор.
Коэффициент корреляции
Корреляция – это мера линейной связи двух или более переменных. При её помощи мы можем предсказать одну переменную через другую. Логика использования этого метода для выбора характеристик заключается в том, что “хорошие” переменные сильно коррелируют с нашей целью.
Стоит отметить, что переменные должны коррелировать с целевым показателем, но не должны между собой. В примере ниже мы будем использовать корреляцию Пирсона.
Эта техника позволяет нам вычислить абсолютное отклонение от среднего.
2. Методы обертки (wrapper methods)
Особенность этих методов – поиск всех возможных подмножеств признаков и оценка их качества путем “прогонки” через модель.
Процесс выбора функции основан на конкретном алгоритме машинного обучения, который мы используем. Он следует подходу жадного поиска, оценивая все возможные комбинации функций по определенному критерию. Методы оболочки обычно обеспечивают лучшую точность прогнозирования чем методы фильтрации.
Прямой отбор признаков
Это крайне прямолинейный метод, в котором мы начинаем с наиболее эффективной переменной по отношению к цели. Затем мы выбираем другую переменную, которая дает лучшую производительность в сочетании с первой. Этот процесс продолжается до тех пор, пока не будет достигнут заданный критерий.
Последовательный отбор признаков
Этот метод работает прямо противоположно методу прямого выбора характеристик. Здесь мы начинаем со всех доступных функций и строим модель. Затем мы используем переменную из модели, которая дает наилучшее значение меры оценки. Этот процесс продолжается до тех пор, пока не будет достигнут заданный критерий.
Исчерпывающий выбор признаков
Это самый надежный метод выбора функций из всех существующих. Его суть – оценка каждого подмножества функций методом перебора. Это означает, что метод пропускает все возможные комбинации переменных через алгоритм и возвращает наиболее эффективное подмножество.
Рекурсивное исключение признаков
Сначала модель обучается на начальной выборке признаков, и важность каждой функции определяется либо с помощью атрибута coef_ или feature_importances_. Затем наименее важные “фичи” удаляются из текущего набора. Процедура рекурсивно повторяется для сокращенного набора до тех пор, пока в конечном итоге не будет достигнуто желаемое количество признаков для выбора.
3. Встроенные методы (embedded methods)
Эти методы включают в себя преимущества первых двух, а также уменьшают вычислительные затраты. Отличительной особенностью встроенных методов является извлечение “фич” на этапе конкретной итерации.
Регуляризация LASSO (L1)
Регуляризация состоит в добавлении штрафа (penalty) к различным параметрам модели во избежание чрезмерной подгонки. При регуляризации линейной модели штраф применяется к коэффициентам, умножающим каждый из предикторов. Lasso-регуляризация обладает свойством, позволяющим уменьшить некоторые коэффициенты до нуля. Следовательно, такие “фичи” можно будет просто удалить из модели.
Метод с использованием Случайного Леса (Random Forest Importance)
Стратегии на основе дерева, используемые случайными лесами, естественным образом ранжируются по тому, насколько хорошо они улучшают чистоту модели в плане данных. Таким образом, “обрезая” деревья ниже определенного коэффициента, мы можем подобрать наиболее важные признаки.
Заключение
Эффективный отбор необходимых “фич” для модели приводит к наибольшему увеличению производительности. Это та проблема, за решением которой дата-сайентисты проводят большую часть времени. Разумеется, без построения признаков (feature engineering) у нас не будет материала для дальнейшего отбора.
Правильные преобразования зависят от многих факторов: типа и структуры данных, их объема. Не стоит также забывать о доступных ресурсах нашего компьютера или облака. Взяв на вооружение обе техники из этого цикла статей, вы будете чувствовать себя гораздо увереннее в мире науки о данных.