Конструювання ознак
Конструюва́ння озна́к (англ. 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.— Xavier Conort, Q&A with Xavier Conort[4]
… деякі проекти машинного навчання досягають успіху, а деякі зазнають невдачі. В чому різниця? Просто найважливішим чинником є використані ознаки.Оригінальний текст (англ.)…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[5]
Процес конструювання ознак:[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]
- Коваріата
- Гешувальний прийом[en]
- Ядрові методи
- Перелік наборів даних для досліджень машинного навчання
- Відображення простору[en]
- ↑ Machine Learning and AI via Brain simulations. Stanford University. Архів оригіналу за 15 вересня 2020. Процитовано 1 серпня 2019. (англ.)
- ↑ а б Discover Feature Engineering, How to Engineer Features and How to Get Good at It - Machine Learning Mastery. Machine Learning Mastery. Архів оригіналу за 4 березня 2016. Процитовано 11 листопада 2015. (англ.)
- ↑ Feature Engineering: How to transform variables and create new ones?. Analytics Vidhya. 12 березня 2015. Архів оригіналу за 5 березня 2016. Процитовано 12 листопада 2015. (англ.)
- ↑ Q&A with Xavier Conort. kaggle.com. 10 квітня 2013. Архів оригіналу за 27 листопада 2015. Процитовано 12 листопада 2015. (англ.)
- ↑ Domingos, Pedro (1 жовтня 2012). A few useful things to know about machine learning (PDF). Communications of the ACM (англ.). 55 (10): 78—87. doi:10.1145/2347736.2347755. Архів оригіналу (PDF) за 23 січня 2016. Процитовано 24 січня 2016. (англ.)
- ↑ Big Data: Week 3 Video 3 - Feature Engineering. youtube.com. Архів оригіналу за 16 березня 2016. Процитовано 24 січня 2016. (англ.)
- ↑ 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. Архів оригіналу за 13 серпня 2019. Процитовано 18 серпня 2019 — через content.iospress.com. (англ.)
- ↑ Feature Engineering (PDF). 22 квітня 2010. Архів оригіналу (PDF) за 6 вересня 2015. Процитовано 12 листопада 2015. (англ.)
- ↑ Feature engineering and selection (PDF). Alexandre Bouchard-Côté. 1 жовтня 2009. Архів оригіналу (PDF) за 14 березня 2016. Процитовано 12 листопада 2015. (англ.)
- ↑ Feature engineering in Machine Learning (PDF). Zdenek Zabokrtsky. Архів оригіналу (PDF) за 4 березня 2016. Процитовано 12 листопада 2015. (англ.)
- ↑ Automating big-data analysis. Архів оригіналу за 14 вересня 2019. Процитовано 18 серпня 2019. (англ.)
- ↑ Deep Feature Synthesis: Towards Automating Data Science Endeavors (PDF). Архів оригіналу (PDF) за 18 серпня 2019. Процитовано 18 серпня 2019. (англ.)
- ↑ Featuretools | An open source framework for automated feature engineering Quick Start. www.featuretools.com. Архів оригіналу за 18 серпня 2019. Процитовано 22 серпня 2019. (англ.)
- ↑ One button machine for automating feature engineering in relational databases (PDF). Архів оригіналу (PDF) за 4 жовтня 2019. Процитовано 18 серпня 2019. (англ.)
- ↑ ExploreKit: Automatic Feature Generation and Selection (PDF). Архів оригіналу (PDF) за 4 жовтня 2019. Процитовано 18 серпня 2019. (англ.)
- ↑ Orges Leka. Automatic Feature Engineering for Data Science. orges-leka.de. Архів оригіналу за 30 серпня 2019. Процитовано 29 вересня 2019. (англ.)