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

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

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

Вот список некоторых из лучших доступных инструментов: -

1. FeatureTools

2. AutoFeat

3. TsFresh

4. Cognito

5. OneBM

6. ExploreKit

7. PyFeat

FeatureTools: -

Одна из самых популярных библиотек Python для автоматизированной разработки функций - FeatureTools, которая создает большой набор функций с помощью «глубокого синтеза функций». Эта библиотека ориентирована на реляционные данные, где функции могут быть созданы посредством агрегирования (например, для некоторых клиентов (таблица данных 1) и связанных с ними ссуд (в таблице 2) новая функция может быть суммой ссуд каждого клиента) или преобразований. (например, время с момента последнего платежа по кредиту). DFS требуются структурированные и реляционные данные для создания новых функций.

FeatureTools состоит из двух основных компонентов:

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

· Примитивы: это основные операции, такие как среднее значение, режим, максимум и т. Д., Которые могут применяться к данным. Это может быть преобразование или агрегирование.

Преимущества :-

1) Самые популярные и, следовательно, доступные ресурсы.

2) Мы можем указать типы переменных.

3) Можно создавать собственные примитивы.

4) Могут быть созданы расширяющиеся объекты по времени.

5) Лучше всего справляется с реляционной базой данных.

Ограничения :-

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

2) Для базы данных, которая не является реляционной, нам придется использовать нормализацию.

3) Нет поддержки неструктурированных данных.

4) Извлеченные характеристики - это основные статистические характеристики, агрегированные независимо от других столбцов целевой переменной.

AutoFeat:

AutoFeat - это одна из библиотек Python, которая автоматизирует разработку и выбор функций, а также подгонку модели линейной регрессии. Обычно они используют модель линейной регрессии, чтобы сделать процесс более объяснимым.

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

Вот процесс выбора функции, используемый AutoFeat:

Преимущества: -

· Только среда с открытым исходным кодом для автоматизированной разработки функций общего назначения, которая не заботится о реляционных данных.

· Также делает выбор функций, чтобы уменьшить проблему размерности.

· Не создает физически бессмысленных функций и, следовательно, полезен в логистических данных.

Ограничения : -

· Плохо справляется с реляционными данными.

· Делайте только более простые функции, такие как соотношения, продукты и другие базовые преобразования.

· Не учитывает взаимодействие функций для создания новых функций.

· Подходит только для автоматизированной модели для данных регрессии, а не для задачи классификации.

TsFresh :

TsFresh, что означает Извлечение признаков временных рядов на основе масштабируемых тестов гипотез, представляет собой пакет Python для анализа временных рядов, который содержит методы извлечения признаков и алгоритм выбора признаков. В настоящее время он автоматически извлекает 64 характеристики из данных временного ряда, которые описывают как основные, так и сложные характеристики временного ряда (такие как количество пиков, среднее значение, максимальное значение, статистика симметрии обращения времени и т. Д.), И эти функции можно использовать для построения моделей машинного обучения на основе регрессии или классификации.

Преимущества :

· Лучший инструмент Python с открытым исходным кодом, доступный для классификации и регрессии временных рядов.

· Может быть легко интегрирован с FeatureTools.

Ограничения :

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

PyFeat:

PyFeat - это практичный и простой в использовании набор инструментов, реализованный на Python для извлечения различных функций из белков, ДНК и РНК.

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

ExploreKit:

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

Процесс генерации и отбора выглядит следующим образом:

Преимущества:

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

Ограничения:

· Нет реализации с открытым исходным кодом ни на Python, ни на R.

OneBM:

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

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

Преимущества:

· Хорошо работает как с реляционными, так и с нереляционными данными.

· Создает как простые, так и сложные функции по сравнению с FeatureTools.

· Протестировано на соревнованиях Kaggle, где были представлены самые современные модели.

· Может также использоваться для создания функций для больших данных.

Ограничения:

· Нет реализации с открытым исходным кодом.

Cognito:

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

Ограничения:

· Нет реализации с открытым исходным кодом.

· Требуются дополнительные усилия с реляционными данными.

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