Разработка функций - Feature engineering

Разработка функций это процесс использования базовые знания извлекать Особенности из сырого данные через сбор данных техники. Эти функции можно использовать для повышения производительности машинное обучение алгоритмы. Функциональную инженерию можно рассматривать как прикладное машинное обучение.[1]

Функции

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

Назначение функции, помимо атрибута, было бы намного легче понять в контексте проблемы. Функция - это характеристика, которая может помочь при решении проблемы.[2]

Важность

Особенности важны для прогнозные модели и повлиять на результаты.[3]

Утверждается, что разработка функций играет важную роль в Kaggle соревнования [4] и успех или неудача проектов машинного обучения.[5]

Процесс

Процесс разработки функций:[6]

  • Мозговой штурм или же тестирование Особенности;[7]
  • Решение, какие функции создать;
  • Создание функций;
  • Проверка того, как функции работают с вашей моделью;
  • Улучшение ваших функций при необходимости;
  • Вернитесь к мозговому штурму / созданию дополнительных функций, пока работа не будет сделана.

Актуальность

Функция может быть строго релевантной (т. Е. Функция содержит информацию, которой нет ни в одной другой функции), релевантной, слабо релевантной (некоторая информация, которую включают другие функции) или нерелевантной.[8] Даже если некоторые функции неуместны, лучше иметь их слишком много, чем упускать важные. Выбор функции может использоваться для предотвращения переобучения.[9]

Взрыв функций

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

  • Шаблоны функций - реализация шаблонов функций вместо кодирования новых функций
  • Комбинации признаков - комбинации, которые не могут быть представлены линейной системой

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

Автоматизация

Автоматизация проектирования функций - это тема исследований, которая берет свое начало как минимум с конца 1990-х годов.[11] Академическую литературу по этой теме можно грубо разделить на две строки: во-первых, изучение многореляционного дерева решений (MRDTL), в котором используется контролируемый алгоритм, похожий на Древо решений. Во-вторых, более современные подходы, такие как Deep Feature Synthesis, в которых используются более простые методы.[нужна цитата ]

Обучение многореляционному дереву решений (MRDTL) генерирует функции в форме SQL-запросов путем последовательного добавления новых предложений к запросам.[12] Например, алгоритм может начинаться с

ВЫБРАТЬ СЧИТАТЬ(*) ИЗ АТОМ t1 ОСТАВИЛИ ПРИСОЕДИНИТЬСЯ МОЛЕКУЛА t2 НА t1.mol_id = t2.mol_id ГРУППА К t1.mol_id

Затем запрос можно последовательно уточнять, добавляя условия, такие как «WHERE t1.charge <= -0.392».[13]

Однако в большинстве академических исследований MRDTL используются реализации, основанные на существующих реляционных базах данных, что приводит к множеству избыточных операций. Эту избыточность можно уменьшить с помощью таких приемов, как распространение идентификатора кортежа.[14][15] Совсем недавно было продемонстрировано, что эффективность может быть дополнительно увеличена за счет использования инкрементных обновлений, которые полностью исключают избыточность.[16]

В 2015 году исследователи из Массачусетского технологического института представили алгоритм Deep Feature Synthesis и продемонстрировали его эффективность в онлайн-соревнованиях по науке о данных, где он победил 615 из 906 команд.[17][18] Deep Feature Synthesis доступен в виде библиотеки с открытым исходным кодом под названием Featuretools.[19] За этой работой последовали другие исследователи, в том числе IBM OneBM.[20] и ExploreKit Беркли.[21] Исследователи из IBM заявили, что автоматизация проектирования функций «помогает специалистам по обработке данных сократить время исследования данных, позволяя им опробовать многие идеи за короткое время. С другой стороны, это позволяет неспециалистам, которые не знакомы с наукой о данных, быстро извлекать пользу из своих данных с небольшими усилиями, временем и ценами ».[нужна цитата ]

Смотрите также

Рекомендации

  1. ^ «Машинное обучение и искусственный интеллект посредством моделирования мозга». Стэндфордский Университет. Получено 2019-08-01.
  2. ^ «Откройте для себя разработку функций, как разрабатывать функции и как добиться в этом совершенства - мастерство машинного обучения». Мастерство машинного обучения. Получено 2015-11-11.
  3. ^ «Разработка функций: как преобразовывать переменные и создавать новые?». Аналитика Видхья. 2015-03-12. Получено 2015-11-12.
  4. ^ «Вопросы и ответы с Ксавье Конорт». kaggle.com. 2013-04-10. Получено 12 ноября 2015.
  5. ^ Домингос, Педро (01.10.2012). "Несколько полезных сведений о машинном обучении" (PDF). Коммуникации ACM. 55 (10): 78–87. Дои:10.1145/2347736.2347755. S2CID  2559675.
  6. ^ «Большие данные: неделя 3, видео 3 - Разработка функций». youtube.com.
  7. ^ Джалал, Ахмед Адиб (1 января 2018 г.). «Большие данные и интеллектуальные программные системы». Международный журнал интеллектуальных инженерных систем, основанных на знаниях. 22 (3): 177–193. Дои:10.3233 / KES-180383 - через content.iospress.com.
  8. ^ "Feature Engineering" (PDF). 2010-04-22. Получено 12 ноября 2015.
  9. ^ «Разработка и отбор функций» (PDF). Александр Бушар-Коте. 1 октября 2009 г.. Получено 12 ноября 2015.
  10. ^ «Разработка функций в машинном обучении» (PDF). Зденек Забокртский. Архивировано из оригинал (PDF) 4 марта 2016 г.. Получено 12 ноября 2015.
  11. ^ Knobbe, Arno J .; Сибес, Арно; Ван дер Валлен, Даниэль (1999). «Индукция многореляционного дерева решений» (PDF). Принципы интеллектуального анализа данных и обнаружения знаний. Конспект лекций по информатике. 1704. С. 378–383. Дои:10.1007/978-3-540-48247-5_46. ISBN  978-3-540-66490-1.
  12. ^ «Сравнительное исследование алгоритма обучения множественного реляционного дерева решений». CiteSeerX  10.1.1.636.2932. Цитировать журнал требует | журнал = (помощь)
  13. ^ Лейва, Гектор; Атраментов, Анна; Хонавар, Васант (2002). «Эксперименты с MRDTL - алгоритмом обучения многореляционному дереву решений» (PDF). Цитировать журнал требует | журнал = (помощь)
  14. ^ Инь, Сяосинь; Хан, Цзявэй; Ян, Цзюн; Ю, Филип С. (2004). «CrossMine: эффективная классификация по множеству отношений базы данных». Ход работы. 20-я Международная конференция по инженерии данных. Материалы 20-й Международной конференции по инженерии данных. С. 399–410. Дои:10.1109 / ICDE.2004.1320014. ISBN  0-7695-2065-0. S2CID  1183403.
  15. ^ Франк, Ричард; Мозер, Флавия; Эстер, Мартин (2007). «Метод множественной реляционной классификации с использованием одно- и многофункциональных функций агрегирования». Обнаружение знаний в базах данных: PKDD 2007. Конспект лекций по информатике. 4702. С. 430–437. Дои:10.1007/978-3-540-74976-9_43. ISBN  978-3-540-74975-2.
  16. ^ «Как работает автоматизированная разработка функций - наиболее эффективное решение для разработки функций для реляционных данных и временных рядов». Получено 2019-11-21.[рекламный источник? ]
  17. ^ «Автоматизация анализа больших данных».
  18. ^ Кантер, Джеймс Макс; Veeramachaneni, Калян (2015). «Глубокий синтез функций: на пути к автоматизации усилий в области науки о данных». Международная конференция IEEE по науке о данных и передовой аналитике (DSAA), 2015 г.. Международная конференция IEEE по науке о данных и расширенной аналитике. С. 1–10. Дои:10.1109 / DSAA.2015.7344858. ISBN  978-1-4673-8272-4. S2CID  206610380.
  19. ^ «Featuretools | Фреймворк с открытым исходным кодом для быстрого старта автоматизированной разработки функций». www.featuretools.com. Получено 2019-08-22.
  20. ^ Хоанг Тхань Лам; Тибо, Иоганн-Михаэль; Шинн, Матье; Чен, Бэй; Май, Тиеп; Алкан, Ознур (2017). «Машина с одной кнопкой для автоматизации проектирования функций в реляционных базах данных». arXiv:1706.00327. Bibcode:2017arXiv170600327T. Цитировать журнал требует | журнал = (помощь)
  21. ^ «ExploreKit: автоматическое создание и выбор функций» (PDF).

дальнейшее чтение

  • Бёмке, Брэдли; Гринвелл, Брэндон (2019). "Feature & Target Engineering". Практическое машинное обучение с R. Чепмен и Холл. С. 41–75. ISBN  978-1-138-49568-5.
  • Чжэн, Алиса; Касари, Аманда (2018). Разработка функций для машинного обучения: принципы и методы для специалистов по данным. О'Рейли. ISBN  978-1-4919-5324-2.
  • Зумель, Нина; Гора, Джон (2020). «Инженерия данных и формирование данных». Практическая наука о данных с R (2-е изд.). Мэннинг. С. 113–160. ISBN  978-1-61729-587-4.