Конструирование признаков — это процесс использования предметной области данных для создания признаков, которые нужны для обучения машин. Конструирование признаков является фундаментом для приложений машинного обучения, трудным и затратным. Необходимости ручного конструирования признаков можно избежать при автоматизации прикладного обучения признакам.
Конструирование признаков является неформальной областью, но считается существенным в машинном обучении.
Придумывать признаки трудно, требует много времени и глубоких знаний. «Прикладное машинное обучение», в основном, это конструирование признаков. — Эндрю Ын
|
Признак — это качество или свойство, присущее всем независимым объектам, анализ которых или прогноз для которых мы делаем. Любое качество может быть полезным, если оно полезно для модели.
Смысл признака и чем он отличается от качества, легче было бы понять в контексте задачи. Признак является характеристикой, которая может помочь решить задачу.
Признаки в ваших данных важны для используемых прогнозных моделей [en] и влияют на результат, который вы собираетесь получить. Качество и количество признаков оказывают большое влияние на качество модели, будет она хорошей или нет.
Можно сказать, что чем лучше признаки, тем лучше будет результат. Это не совсем полная правда, поскольку результат будет зависеть от модели и данных, не просто от выбранных признаков. Но отбор правильных признаков остаётся очень важным делом. Более качественные признаки могут дать более простую и более гибкую модель и часто они дают лучшие результаты.
Применяемые алгоритмы очень стандартны для участников сообщества Kaggle [en] . […] Мы тратим большую часть наших усилий на конструирование признаков. [...] Мы также очень осторожно отбрасываем признаки, которые могут привести к риску переобучения нашей модели. — Xavier Conort
|
…некоторые проекты обучения машин успешны, а некоторые терпят неудачу. Что приводит к этому? Наиболее важными факторами являются используемые признаки. — Pedro Domingos
|
Процесс конструирования признаков — это
Признак может быть строго существенен (имеет информацию, которая не существует в других признаках), существенен, слабо существенен (содержит информацию, которая может содержаться в других признаках) или несущественен. Важно создать много признаков, даже если некоторые из них будут несущественны, вы не можете их просто так отбросить. Затем может быть использован отбор признаков для предотвращения переобучения.
Взрыв признаков может быть вызван путём комбинации признаков или шаблонов признаков, что ведёт к быстрому росту общего числа признаков.
Существует несколько решений для останова взрыва признаков, такие как регуляризация, ядерный метод, отбор признаков.
Автоматизация конструирования признаков стала новой темой исследований в академических кругах. В 2015 году исследователи Массачусетского технологического института представили алгоритм «Deep Feature Synthesis» (Глубокий Синтез Признаков) и продемонстрировали его эффективность в онлайновом научном конкурсе обработки данных, где алгоритм побил 615 из 906 команд людей. Алгоритм «Deep Feature Synthesis» доступен в виде библиотеки с открытым кодом, называемый Featuretools. Эту работу продолжили другие исследователи, включая OneBM компании IBM и ExploreKit компании Berkeley. Исследователи из IBM утверждают, что автоматизация конструирования признаков «помогает учёным сократить время исследования данных, позволяя экспериментировать на них методом проб и ошибок за короткое время. С другой стороны, это даёт возможность, не будучи экспертом, то есть, не будучи знакомым с методами анализа данных, быстро выбрать значение из данных с небольшими усилиями, временными и денежными затратами.»
Появились коммерческие продукты от новых компаний, фокусирующихся на обучении машин, такие как H20.ai и Feature Labs.