Конструирование признаков

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Конструирование признаков является неформальной областью, но считается существенным в машинном обучении.

Придумывать признаки трудно, требует много времени и глубоких знаний. «Прикладное машинное обучение», в основном, это конструирование признаков.

Признаки[править | править код]

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

Смысл признака и чем он отличается от качества, легче было бы понять в контексте задачи. Признак является характеристикой, которая может помочь решить задачу[2].

Важность признаков[править | править код]

Признаки в ваших данных важны для используемых прогнозных моделей[en] и влияют на результат, который вы собираетесь получить. Качество и количество признаков оказывают большое влияние на качество модели, будет она хорошей или нет[3].

Можно сказать, что чем лучше признаки, тем лучше будет результат. Это не совсем полная правда, поскольку результат будет зависеть от модели и данных, не просто от выбранных признаков. Но отбор правильных признаков остаётся очень важным делом. Более качественные признаки могут дать более простую и более гибкую модель и часто они дают лучшие результаты[2].

Применяемые алгоритмы очень стандартны для участников сообщества Kaggle. […] Мы тратим большую часть наших усилий на конструирование признаков. [...] Мы также очень осторожно отбрасываем признаки, которые могут привести к риску переобучения нашей модели.
— Xavier Conort[4]
…некоторые проекты обучения машин успешны, а некоторые терпят неудачу. Что приводит к этому? Наиболее важными факторами являются используемые признаки.
— Pedro Domingos[5]

Процесс конструирования признаков[править | править код]

Процесс конструирования признаков — это[6]

  1. Метод мозгового штурма или проверка признаков;
  2. Решение, какие признаки создавать;
  3. Создание признаков;
  4. Проверка, какие признаки работают с вашей моделью;
  5. Улучшение признаков, если требуется;
  6. Возврат к методу мозгового штурма/создание других признаков, пока работа не будет завершена.

Существенность признаков[править | править код]

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

Взрыв признаков[править | править код]

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

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

Существует несколько решений для останова взрыва признаков, такие как регуляризация, ядерный метод, отбор признаков[9].

Автоматическое конструирование признаков[править | править код]

Автоматизация конструирования признаков стала новой темой исследований в академических кругах. В 2015 году исследователи Массачусетского технологического института представили алгоритм «Deep Feature Synthesis» (Глубокий Синтез Признаков) и продемонстрировали его эффективность в онлайновом научном конкурсе обработки данных, где алгоритм побил 615 из 906 команд людей[10][11]. Алгоритм «Deep Feature Synthesis» доступен в виде библиотеки с открытым кодом, называемый Featuretools. Эту работу продолжили другие исследователи, включая OneBM компании IBM[12] и ExploreKit компании Berkeley[13]. Исследователи из IBM утверждают, что автоматизация конструирования признаков «помогает учёным сократить время исследования данных, позволяя экспериментировать на них методом проб и ошибок за короткое время. С другой стороны, это даёт возможность, не будучи экспертом, то есть, не будучи знакомым с методами анализа данных, быстро выбрать значение из данных с небольшими усилиями, временными и денежными затратами.»

Появились коммерческие продукты от новых компаний, фокусирующихся на обучении машин, такие как H20.ai[14] и Feature Labs [15].

См. также[править | править код]

Примечания[править | править код]

  1. Machine Learning and AI via Brain simulations. Stanford University. Дата обращения: 3 августа 2017.
  2. 1 2 Discover Feature Engineering, How to Engineer Features and How to Get Good at It - Machine Learning Mastery. Machine Learning Mastery. Дата обращения: 11 ноября 2015.
  3. Feature Engineering: How to transform variables and create new ones?. Analytics Vidhya (12 марта 2015). Дата обращения: 12 ноября 2015.
  4. Q&A with Xavier Conort. kaggle.com (2015). Дата обращения: 1 ноября 2015.
  5. Domingos, Pedro A Few Useful Things to Know about Machine Learning. Дата обращения: 12 ноября 2015.
  6. Big Data: Week 3 Video 3 — Feature Engineering. youtube.com.
  7. Feature Engineering (22 апреля 2010). Дата обращения: 12 ноября 2015.
  8. Feature engineering and selection. Alexandre Bouchard-Côté. Дата обращения: 12 ноября 2015.
  9. Feature engineering in Machine Learning (недоступная ссылка). Zdenek Zabokrtsky. Дата обращения: 12 ноября 2015. Архивировано 4 марта 2016 года.
  10. Automating big-data analysis.
  11. Deep Feature Synthesis: Towards Automating Data Science Endeavors.
  12. One button machine for automating feature engineering in relational databases.
  13. ExploreKit: Automatic Feature Generation and Selection.
  14. H2O.AI snares $40M Series C investment led by Wells Fargo and Nvidia.
  15. Feature Labs launches out of MIT to accelerate the development of machine learning algorithms.

Литература[править | править код]