Лучший подход для выбора функций - PullRequest
0 голосов
/ 20 февраля 2019

У меня более шести разных таблиц с более чем 300 функциями (атрибутами).Теперь я немного озадачен правильным подходом к выбору функций для построения моделей.Я думаю о двух процессах

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

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

300 функций - это слишком много для процесса построения вашей модели.

Вы можете использовать алгоритмы, такие как xgboost и случайный лес, так как они имеют возможности поиска важных функций.

Вы можете сортировать свои функции на основена важности функций и удалите те, которые имеют очень меньшее значение. Это сделает вашу модель менее сложной.

0 голосов
/ 20 февраля 2019

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

0 голосов
/ 20 февраля 2019

Вы можете использовать прямой выбор функций, который начинается с одной функции, вы обучаете модель только одной из 300 функций и делаете это 300 раз, чтобы вы обучили модель каждой из них отдельно и выберите ту, которая дала вашу модель.Наивысшая точность, теперь сохраните эту и начните тренировать вашу модель с выбранной функцией, а другую - из 299 оставшихся, так что вы тренируете модель 299 с двумя характеристиками, теперь добавьте одну из 299, которая дала вам наивысшую точность, сопровождающую ранеевыбрал один.Теперь у вас есть 2 функции.Вы продолжаете в том же духе, чтобы выбрать k лучших функций, которые вы хотите, например, 100.имейте в виду, что этот метод не даст вам оптимальный набор функций, например, две функции могут работать очень хорошо вместе, но ни одна из них не оказывает существенного влияния только на границу принятия решения, поэтому ни одна из них не будет выбрана. Также это мучительно долгоподход.есть также обратный выбор объектов, который вы запускаете, все из них, все 300, и удаляете один за другим менее значимую базу функций, связанную с ошибкой, которую вы получаете, удаляя их.

мой совет - использовать методы извлечения функцийвместо.используйте PCA от scikit-learn.это так просто, как просто импортировать и вызвать его!сделанный.но перед использованием PCA обязательно нормализуйте свои данные, в этом случае вы можете использовать StandardScalar .

...