Выбор функций с использованием FRUFS и VevestaX

В задачах машинного обучения выбор признаков помогает уменьшить переоснащение, удалить зашумленные переменные, уменьшить объем памяти и т. д. В этой статье мы представляем новый метод, а именно FRUFS. Алгоритм основан на идее, что наиболее важным является тот признак, который может в значительной степени представлять все остальные признаки. Точно так же второй по важности признак может аппроксимировать все остальные признаки, но не так хорошо, как самый важный, и так далее.

FRUFS не зависит от модели и не контролируется, что означает, что Y не играет никакой роли в определении важности функций. Следовательно, на первом шаге мы удаляем Y из данных. Затем мы берем одну функцию j в качестве цели и пытаемся предсказать ее с помощью любой модели f, используя оставшиеся функции. В этом методе целью является X[j], а признаками являются X[~j], где X — данные. Все функции (кроме функции j) используются для прогнозирования функции j. Этот метод не зависит от модели, что означает, что любая модель от линейной регрессии до XGBoost может использоваться для прогнозирования целевого признака j. На каждой итерации определения цели j с использованием модели m вычисляется важность признака для всех оставшихся признаков. Этот процесс повторяется для всех признаков, т. е. 1‹= j ‹= n, и, наконец, важность признака усредняется. Обратите внимание, выборка данных применяется для увеличения скорости сходимости алгоритма.

Подводя итог, можно сказать, что этот алгоритм зависит от способности функции предсказывать другие функции. Если функцию 1 можно предсказать с помощью функции 2, 3 и 4. Мы можем легко отбросить функции 2, 3 и 4. На основе этой идеи был определен FRUFS (неконтролируемый выбор функций на основе релевантности функций). Авторы описали FRUFS как неконтролируемый метод выбора признаков, который использует контролируемые алгоритмы, такие как XGBoost, для ранжирования признаков в зависимости от их важности.

Как использовать VevestaX

Для отслеживания экспериментов — функций, спроектированных функций и параметров вы можете использовать библиотеку VevestaX. Установите VevestaX следующим образом:

pip установить vevestaX

Импортируйте и создайте объект vevesta следующим образом.

из vevestaX импортировать vevesta как v

V=v.Эксперимент()

Для отслеживания используемой функции

V.ds = данные

где данные - это кадр данных pandas с входными функциями

Для отслеживания функций, разработанных

V.fe = данные

Наконец, если вы хотите отслеживать определенные переменные, используемые в коде, заключите их с помощью V.start() в начале блока кода и V.end() в конце блока кода. По умолчанию VevestaX отслеживает все переменные, используемые в коде. Наконец, используйте V.dump для создания дампа функций и переменных, используемых в файле Excel. Пример

V.dump (используемая техника = «XGBoost»)

Если вы работаете над kaggle или colab или не хотите использовать V.start() и V.end(), по умолчанию VevestaX будет отслеживать все переменные (примитивных типов данных), используемые в коде за вас.

Как использовать фруфс

Вы можете установить эту библиотеку с

pip установить FRUFS

Начните с импорта библиотеки

из FRUFS импортировать FRUFS

Вызовите объект FRUFS следующим образом:

модель = FRUFS(model_r, model_c, k, n_jobs, подробный, categorical_features, random_state)

Пример:

модель = FRUFS (model_r = DecisionTreeRegressor (random_state = 27), k = 5, n_jobs = -1, подробный = 0, random_state = 1)

Теперь обучите модель FRUFS и используйте ее для уменьшения размера ваших данных.

х = модель.fit_transform (х)

Наконец, чтобы получить график оценок важности функции

модель.feature_importance()

Для получения дополнительной информации о VevestaX посетите Github

Пример вывода библиотеки VevestaX:

На вкладке «Источник данных» подробно описаны функции, использованные в эксперименте, где 1 указывает на наличие функции, а 0 указывает на ее отсутствие в эксперименте.

На вкладке «Разработка функций» подробно описаны функции, созданные в экспериментах, например, 1 означает, что функция была спроектирована в этом эксперименте, а 0 — нет.

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

Вкладка «Сообщения» содержит сведения о файле, использованном для проведения эксперимента, а также версию, метод, использованный в эксперименте, и отметку времени эксперимента.

EDA-корреляция, как следует из названия, дает корреляцию между функциями.

EDA-диаграмма рассеяния, как следует из названия, дает диаграмму рассеяния признаков.

График EDA-производительности отображает значения переменных, используемых в коде, с отметками времени эксперимента.

Vevesta — это портфолио нового поколения для проектов машинного обучения: сохраняйте и делитесь проектами машинного обучения. Исследуйте vevesta бесплатно. Чтобы узнать больше таких историй, следите за нами в твиттере @vevesta1.

Использованная литература:

  1. Гитхаб FRUFS
  2. Авторская статья ФРУФС
  3. Статья ФРУФС
  4. Статья VevestaX
  5. Ссылка VevestaX на GitHub
  6. Статья ФРУФС