Конструирование признаков
Конструирование признаков — это процесс использования предметной области данных для создания признаков, которые нужны для обучения машин. Конструирование признаков является фундаментом для приложений машинного обучения, a также процессом трудным и затратным. Необходимости ручного конструирования признаков можно избежать при автоматизации прикладного обучения признакам.
Конструирование признаков является неформальной областью, но считается существенным в машинном обучении.
Признаки
Признак — это качество или свойство, присущее всем независимым объектам, анализ которых или прогноз для которых мы делаем. Любое качество может быть полезным, если оно полезно для модели.
Смысл признака и чем он отличается от качества, легче было бы понять в контексте задачи. Признак является характеристикой, которая может помочь решить задачу[2].
Важность признаков
Признаки в ваших данных важны для используемых прогнозных моделей и влияют на результат, который вы собираетесь получить. Качество и количество признаков оказывают большое влияние на качество модели, будет она хорошей или нет[3].
Можно сказать, что чем лучше признаки, тем лучше будет результат. Это не совсем полная правда, поскольку результат будет зависеть от модели и данных, не просто от выбранных признаков. Но отбор правильных признаков остаётся очень важным делом. Более качественные признаки могут дать более простую и более гибкую модель и часто они дают лучшие результаты[2].
Применяемые алгоритмы очень стандартны для участников сообщества Kaggle. […] Мы тратим большую часть наших усилий на конструирование признаков. [...] Мы также очень осторожно отбрасываем признаки, которые могут привести к риску переобучения нашей модели.
…некоторые проекты обучения машин успешны, а некоторые терпят неудачу. Что приводит к этому? Наиболее важными факторами являются используемые признаки.
Процесс конструирования признаков
Процесс конструирования признаков — это[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].
См. также
- Ковариата
- Хеш-трюк
- Ядерный метод
- Список наборов данных для изучения обучения машин
Примечания
- Machine Learning and AI via Brain simulations . Stanford University. Дата обращения: 3 августа 2017.
- Discover Feature Engineering, How to Engineer Features and How to Get Good at It - Machine Learning Mastery . Machine Learning Mastery. Дата обращения: 11 ноября 2015.
- Feature Engineering: How to transform variables and create new ones? . Analytics Vidhya (12 марта 2015). Дата обращения: 12 ноября 2015.
- Q&A with Xavier Conort . kaggle.com (2015). Дата обращения: 1 ноября 2015.
- Domingos, Pedro A Few Useful Things to Know about Machine Learning . Дата обращения: 12 ноября 2015.
- Big Data: Week 3 Video 3 — Feature Engineering . youtube.com.
- Feature Engineering (22 апреля 2010). Дата обращения: 12 ноября 2015.
- Feature engineering and selection . Alexandre Bouchard-Côté. Дата обращения: 12 ноября 2015.
- Feature engineering in Machine Learning (недоступная ссылка). Zdenek Zabokrtsky. Дата обращения: 12 ноября 2015. Архивировано 4 марта 2016 года.
- Automating big-data analysis .
- Deep Feature Synthesis: Towards Automating Data Science Endeavors .
- One button machine for automating feature engineering in relational databases .
- ExploreKit: Automatic Feature Generation and Selection .
- H2O.AI snares $40M Series C investment led by Wells Fargo and Nvidia .
- Feature Labs launches out of MIT to accelerate the development of machine learning algorithms .