Feature engineering
Разработка функций - это процесс использования знаний о больших данных для создания функций, которые делают алгоритмы машинного обучения. Особенность разработки является фундаментальной для применения машинного обучения, и она является сложной и дорогостоящей. Необходимость в ручной разработке функций может быть устранена путем автоматизированного обучения.Разработка функций - неофициальная тема, но она считается существенной в прикладном компьютерном обучении.
Выполнение функций сложно, требует много времени, требует экспертных знаний. «Прикладное машинное обучение» - это, в основном, разработка функций. - Эндрю Нг, машинное обучение и ИИ с помощью моделирования мозга
Особенности
Функция - это атрибут или свойство, разделяемое всеми независимыми единицами, на которых должен выполняться анализ или предсказание. Любой атрибут может быть признаком, если он полезен для модели.Назначение функции, отличной от атрибута, было бы намного легче понять в контексте проблемы. Особенность - это характеристика, которая может помочь при решении проблемы
Важность функций
Функции ваших данных важны для используемых вами прогнозирующих моделей и будут влиять на результаты, которые вы собираетесь достичь. Качество и количество функций будут иметь большое влияние на хорошую модель или нет.Вы могли бы сказать, что чем лучше черты, тем лучше результат. Это не совсем так, потому что достигнутые результаты также зависят от модели и данных, а не только от выбранных функций. Тем не менее, выбор правильных функций по-прежнему очень важен. Более эффективные функции могут создавать более простые и гибкие модели, и они часто дают лучшие результаты.
Алгоритмы, которые мы использовали, являются очень стандартными для Kagglers. Мы потратили большую часть своих усилий на разработку функций. Мы также очень старались отказаться от функций, которые могут подвергнуть нас риску переопределения нашей модели.
- Xavier Conort, «Вопросы и ответы с Xavier Conort»
... некоторые проекты машинного обучения преуспевают, а некоторые терпят неудачу. В чем разница? Легко самый важный фактор - используемые функции.
- Педро Домингос, «Несколько полезных вещей, которые нужно знать о механическом обучении»
Процесс создания функций
- Мозговой штурм или функции тестирования;
- Определение возможностей для создания;
- Создание функций;
- Проверка того, как функции работают с вашей моделью;
- При необходимости улучшайте свои функции;
- Вернитесь к мозговому штурму: создайте дополнительные функции, пока работа не будет выполнена.
Значение релевантности
В зависимости от функции это может быть сильно релевантным (имеется информация, которая не существует ни в какой другой функции), релевантная, слабо релевантная (некоторая информация, которая включает в себя другие функции) или нерелевантна. Важно создать множество функций. Даже если некоторые из них неактуальны, вы не можете позволить себе потерять остальных. После этого можно использовать функцию выбора, чтобы предотвратить переобучение.Характеристика взрыва
Взрыв функции может быть вызван комбинацией функций или шаблонами функций, что приводит к быстрому росту общего количества функций.Шаблоны функций - внедрение шаблонов функций вместо кодирования новых функций
Комбинации функций - комбинации, которые не могут быть представлены линейной системой
Существует несколько решений, помогающих остановить всплеск функций, таких как: регуляризация, метод ядра, выбор функций.
Автоматизированная функциональная инженерия
Автоматизация конструкторской техники стала новой темой исследований в академических кругах. В 2015 году исследователи из Массачусетского технологического института представили алгоритм синхронного синтеза и продемонстрировали свою эффективность в онлайн-конкурсах научных исследований, где он избил 615 из 906 человеческих команд. Deep Synthesis доступен как библиотека с открытым исходным кодом, называемая Featuretools. За этой работой следовали другие исследователи, включая IBM OneBM и Berkeley ExploreKit, Исследователи из IBM заявляют, что автоматизация автоматизации объектов «помогает ученым-ученым сократить время исследования данных, что позволяет им быстро и быстро попытаться ошибиться во многих идеях. С другой стороны, это позволяет неспециалистам, которые не знакомы с наукой о данных, быстро извлекать ценность из своих данных с небольшим усилием, временем и стоимостью».🎓 Подробнее о программе Data Engineer