Проектува́ння озна́к (англ. feature engineering) — це процес застосування знань предметної галузі для створення ознак, які забезпечують роботу алгоритмів машинного навчання. Проектування ознак є фундаментальним для застосування машинного навчання, і є як складним, так і витратним. Потреба в ручному проектуванні ознак може усуватися автоматизованим навчанням ознак.

Проектування ознак є неформальним предметом, але вважається істотним у прикладному машинному навчанні.

Підходити до ознак складно, витратно за часом, вимагає експертних знань. «Прикладне машинне навчання» є в основному проектуванням ознак.
Оригінальний текст(англ.)
Coming up with features is difficult, time-consuming, requires expert knowledge. "Applied machine learning" is basically feature engineering.
— Ендрю Ин [en] Machine Learning and AI via Brain simulations
При роботі над задачею машинного навчання проектування ознак є ручною розробкою того, чим повинні бути вхідні x-и.
Оригінальний текст(англ.)
When working on a machine learning problem, feature engineering is manually designing what the input x's should be.
—Shayne Miel, What is the intuitive explanation of feature engineering in machine learning?

Ознаки

Ознака є частиною інформації, що може бути корисною для передбачування. Ознакою може бути будь-який атрибут, доки він є корисним для моделі.

Призначенням ознаки, на відміну від того, щоби бути просто атрибутом, є набагато легше розуміння контексту задачі. Ознака є характеристикою, яка може допомогти при розв'язуванні задачі.

Важливість ознак

Ознаки у ваших даних є важливими для передбачувальних моделей [en] , що ви застосовуєте, і впливатимуть на результати, які ви збираєтесь отримати. Якість та кількість ознак матиме великий вплив та те, чи буде модель доброю, чи ні.

Ви можете сказати, що чим кращими є ознаки, тим кращим буде результат. Це не зовсім вірно, оскільки отримувані результати також залежать від моделі та даних, а не лише від обраних ознак. Проте вибір правильних ознак все одно є дуже важливим. Кращі ознаки можуть продукувати простіші та гнучкіші моделі, і вони часто дають кращі результати.

Алгоритми, що ми застосовували, є цілком стандартними для кеґлерів… Ми витратили більшість своїх зусиль на розробку ознак… Ми також були дуже обережними у скасуванні ознак, що могли піддати нас ризику перенавчання нашої моделі.
Оригінальний текст(англ.)
The algorithms we used are very standard for Kagglers. […] We spent most of our efforts in feature engineering. [...] We were also very careful to discard features likely to expose us to the risk of over-fitting our model.
—Xavier Conort, Q&A with Xavier Conort
… деякі проекти машинного навчання досягають успіху, а деякі зазнають невдачі. В чому різниця? Просто найважливішим фактором є використані ознаки.
Оригінальний текст(англ.)
…some machine learning projects succeed and some fail. What makes the difference? Easily the most important factor is the features used.
—Pedro Domingos, A Few Useful Things to Know about Machine Learning


Вибух ознак

Ви́бух озна́к (англ. feature explosion) може бути спричинено поєднанням ознак або шаблонами ознак, обидва з яких ведуть до швидкого росту загальної кількості ознак.

  • Шаблони ознак — реалізація шаблонів ознак замість кодування нових ознак
  • Поєднання ознак — поєднання, що не може бути представлено лінійною системою

Існує кілька рішень, як допомогти зупинити вибух ознак, такі як: регуляризація, ядровий метод, обирання ознак.


У цій статті використовується матеріал з статті Вікіпедії Проектування ознак, який випущений під Creative Commons Attribution-Share-Alike License 3.0.