Конструювання ознак
Конструюва́ння озна́к (англ. feature engineering) — це процес застосування знань предметної галузі для створення ознак, які забезпечують роботу алгоритмів машинного навчання. Конструювання ознак є фундаментальним для застосування машинного навчання, і є як складним, так і витратним. Потребу в ручному конструюванні ознак можливо усувати автоматизованим навчанням ознак.
Конструювання ознак є неформальним предметом, але вважається істотним у прикладному машинному навчанні.
Підходити до ознак складно, витратно за часом, вимагає експертних знань. «Прикладне машинне навчання» є в основному конструюванням ознак.Оригінальний текст (англ.)Coming up with features is difficult, time-consuming, requires expert knowledge. "Applied machine learning" is basically feature engineering.
Ознаки
Ознака це атрибут або властивість, що поділяють всі незалежні елементи, аналіз або передбачування яких потрібно здійснювати. Ознакою може бути будь-який атрибут, доки він є корисним для моделі.
Призначенням ознаки, на відміну від того, щоби бути просто атрибутом, є набагато легше розуміння контексту задачі. Ознака є характеристикою, яка може допомогти при розв'язуванні задачі.[2]
Важливість
Ознаки є важливими для передбачувальних моделей, і впливають на результати.[3]
Ви можете сказати, що чим кращими є ознаки, тим кращим буде результат. Це не зовсім вірно, оскільки отримувані результати також залежать від моделі та даних, а не лише від обраних ознак. Проте обрання правильних ознак все одно є дуже важливим. Кращі ознаки можуть продукувати простіші та гнучкіші моделі, і вони часто дають кращі результати.[2]
Алгоритми, що ми застосовували, є цілком стандартними для кеґлерів… Ми витратили більшість своїх зусиль на розробку ознак… Ми також були дуже обережними у скасуванні ознак, що могли піддати нас ризику перенавчання нашої моделі.Оригінальний текст (англ.)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.
… деякі проекти машинного навчання досягають успіху, а деякі зазнають невдачі. В чому різниця? Просто найважливішим чинником є використані ознаки.Оригінальний текст (англ.)…some machine learning projects succeed and some fail. What makes the difference? Easily the most important factor is the features used.
Процес
Процес конструювання ознак:[6]
- Наштурмовування або тестування ознак[7];
- Ухвалення рішення про те, які ознаки створювати;
- Створення ознак;
- Перевірка, як ці ознаки працюють з вашою моделлю;
- Покращення ознак у разі потреби;
- Повернення до мозкового штурму/створення ще ознак, поки роботу не буде зроблено.
Доречність
Ознака вона може бути сильно доречною (тобто, ця ознака має інформацію, що не існує в жодній іншій ознаці), доречною, слабко доречною (деякою інформацією, що включають інші ознаки), або недоречною.[8] Навіть якщо деякі з ознак і є недоречними, мати забагато краще, ніж упустити важливі. Для запобігання перенавчанню можливо застосовувати обирання ознак.[9]
Вибух ознак
Поєднанням ознак або шаблонами ознак, обидва з яких ведуть до швидкого зростання загальної кількості ознак, може бути спричинено вибух ознак (англ. feature explosion).
- Шаблони ознак — реалізація шаблонів ознак замість кодування нових ознак
- Поєднання ознак — поєднання, що не може бути представлено лінійною системою
Вибух ознак можливо зупиняти такими методиками як регуляризація, ядровий метод, обирання ознак.[10]
Автоматизування
Автоматизування конструювання ознак є передовою темою досліджень. 2015 року дослідники з МТІ представили алгоритм глибинного синтезу ознак (англ. Deep Feature Synthesis algorithm) та показали його дієвість в інтерактивних змаганнях з науки про дані, де він побив 615 з 906 людських команд.[11][12] Глибинний синтез ознак є доступним як відкрита бібліотека, звана Featuretools.[13] За цією працею послідували інші дослідження, включно з OneBM IBM[14] та ExploreKit Берклі.[15] Ці дослідники в IBM заявили, що автоматизування конструювання ознак «допомагає науковцям з даних знижувати час на дослідження даних, даючи їм можливість пробувати методом спроб і помилок багато ідей за короткий час. З іншого боку, воно дає можливість не-експертам, що не знайомі з наукою про дані, швидко виділяти цінність з їхніх даних із невеликими зусиллями, часом та витратами». Автоматичне конструювання ознак дозволяє робити теорема вбудовування Бургена.[16]
Див. також
- Коваріата
- Гешувальний прийом
- Ядрові методи
- Перелік наборів даних для досліджень машинного навчання
- Відображення простору
Примітки
- Machine Learning and AI via Brain simulations. Stanford University. Процитовано 1 серпня 2019. (англ.)
- 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. 10 квітня 2013. Процитовано 12 листопада 2015. (англ.)
- Domingos, Pedro (1 жовтня 2012). A few useful things to know about machine learning. Communications of the ACM (англ.) 55 (10): 78–87. doi:10.1145/2347736.2347755. (англ.)
- Big Data: Week 3 Video 3 - Feature Engineering. youtube.com. (англ.)
- Jalal, Ahmed Adeeb (1 січня 2018). Big data and intelligent software systems. International Journal of Knowledge-based and Intelligent Engineering Systems 22 (3): 177–193. doi:10.3233/KES-180383 — через content.iospress.com. (англ.)
- Feature Engineering. 22 квітня 2010. Процитовано 12 листопада 2015. (англ.)
- Feature engineering and selection. Alexandre Bouchard-Côté. 1 жовтня 2009. Процитовано 12 листопада 2015. (англ.)
- Feature engineering in Machine Learning. Zdenek Zabokrtsky. Архів оригіналу за 4 березня 2016. Процитовано 12 листопада 2015. (англ.)
- Automating big-data analysis. (англ.)
- Deep Feature Synthesis: Towards Automating Data Science Endeavors. (англ.)
- Featuretools | An open source framework for automated feature engineering Quick Start. www.featuretools.com. Процитовано 22 серпня 2019. (англ.)
- One button machine for automating feature engineering in relational databases. (англ.)
- ExploreKit: Automatic Feature Generation and Selection. (англ.)
- Orges Leka. Automatic Feature Engineering for Data Science. orges-leka.de. Процитовано 29 вересня 2019. (англ.)