Вопрос или проблема
Предположим, я хочу выполнить отбор признаков на разреженной матрице, например, 10,000 строк x 1500 признаков, но матрица в основном разреженная. Предположим, что все признаки числовые, а целевая переменная бинарная и дискретная.
Каков правильный и эффективный способ применить отбор признаков? Кроме того, мне интересно применить взаимную информацию к этому.
Вы можете уменьшить размерность, так как ваша матрица разреженная. Я бы предложил использовать метод главных компонент (PCA). PCA сократит ваши 1500 входных данных до k-мерного ввода по вашему выбору с сохранением как можно большей информации. Здесь k — это гиперпараметр, который вам нужно настроить и подобрать наилучший.
Другой подход — классификатор LASSO, который является линейной моделью с L1-регуляризацией. Эта модель будет автоматически выполнять отбор признаков и обнулять вес признака, который не нужен. Но ваши входные столбцы должны быть независимыми.
Возможно, кто-то еще сможет внести свой вклад, так как я сам любитель, но вот что бы я сделал.
Похоже, вы заинтересованы в классификации, так что давайте рассмотрим это. В общем, я не думаю, что отбор признаков гарантированно улучшит вашу модель (относительно некоторой меры производительности, например, точности). Поэтому мы хотим определить, может ли отбор признаков улучшить нашу базовую модель с использованием всех признаков. Это может быть так, если некоторые признаки являются избыточными, шумными, несущественными и т. д.
Существует множество способов выполнить отбор признаков, и заранее неизвестно, какой из них будет наилучшим, поэтому вы должны попробовать несколько (и это должно быть частью более крупного конвейера). Для взаимной информации (MI) вы вычисляете MI между каждым признаком и целевой переменной. Затем вы выбираете лучшие k признаков в зависимости от их MI — вы можете рассматривать k как гиперпараметр и оптимизировать его (вместе с другими гиперпараметрами), используя вложенное кросс-валидацию (CV).
Результатом вложенной CV будет выборочная распределение оценки ошибки обобщения. Вы можете сравнить это распределение с базовыми моделями с помощью t-теста Стьюдента, чтобы определить, имеется ли статистически значимое улучшение.
Предположим теперь, что набор данных был сложным и невозможно было обучить модель с использованием всех признаков. В этом случае мы не можем принять в качестве базовой модели модель, использующую все признаки. Вместо этого мы можем сравнить различные конвейеры отбора признаков. Например, мы начинаем с использования MI, находим лучшие гиперпараметры и оцениваем ошибку обобщения, используя вложенное CV (что даст такое же распределение, как и раньше). Теперь мы рассматриваем другую технику, например, рекурсивное исключение признаков, и оцениваем ошибку обобщения, используя вложенное CV. Наконец, мы сравниваем эти два распределения с помощью t-теста Стьюдента, как и раньше.
Мы не ограничены сравнением только двух разных методов (например, RFE против MI), но также можем сравнивать различные конвейеры (например, RFE против PCA + MI или t-SNE + RFE против MI и т. д.).
Надеюсь, это поможет.
Ответ или решение
Для проведения отбора признаков на разреженной матрице размером 10,000 строк и 1,500 признаков, достаточно сосредоточиться на методах, которые наиболее эффективны для разреженных данных. Все признаки числовые, а целевая переменная бинарная, что задает некоторые ограничения, но также открывает возможности для применения конкретных алгоритмов.
Применение взаимной информации
Первый подход состоит в использовании взаимной информации (MI) для отбора признаков. Взаимная информация позволяет определить степень зависимости между отдельными признаками и целевой переменной. Для этого необходимо:
-
Вычисление взаимной информации: Рассчитайте MI между каждым признаком и целевой переменной, используя подходящий алгоритм (например, из библиотеки sklearn в Python). Этот этап позволяет определить, какие признаки имеют наибольшую зависимость от целевой переменной.
-
Отбор признаков: Отберите признаки с наибольшими значениями MI. Вы можете выбрать фиксированное количество топ k признаков, где k является гиперпараметром, который можно оптимизировать в процессе обучения.
-
Оптимизация гиперпараметра: Проведение вложенной кросс-валидации (nested CV) для настройки k и других гиперпараметров. Это позволит наиболее эффективно выбрать признаки, влияющие на качество модели.
Сравнение моделей
После проведения отбора признаков с использованием MI, важно сравнить результирующую модель с базовой моделью, использующей все признаки. Если модель с отбором признаков демонстрирует улучшение в метриках (например, точности), значит, отбор признаков был полезен.
Другие методы и комбинированные подходы
-
Метод LASSO: LASSO использует L1-регуляризацию, чтобы обнулить веса несущественных признаков, что является эффективным способом отбора при наличии сильных отклонений или более простых взаимосвязей в данных. Однако этот метод рекомендуется применять, если признаки независимы.
-
Сравнение методов: Используйте тест Стьюдента для сравнения улучшений в ошибках генерализации между различными стратегиями отбора признаков. Это позволяет оценить, какая методология дает наилучшие результаты.
-
Комбинации с методами уменьшения размерности: Методы, такие как PCA (основной компонентный анализ) или t-SNE, могут быть использованы для дополнительных экспериментов с вашими данными, особенно если они сильно разрежены.
Заключение
Отбор признаков в разреженной матрице представляет собой сложную задачу, требующую сочетания различных методик для достижения наилучших результатов. Внимательное использование взаимной информации, оценка методом LASSO, а также сравнение этих подходов на уровне метрик качества моделей, позволит значительно улучшить производительность модели.