Навчіться розробці функцій для Data Science та ML за 5 хвилин

Чи готові ви поглибити свої знання у сфері створення функцій для машинного навчання та аналізу даних? Якщо так, ви саме там, де потрібно!

Створення функцій є ключовим вмінням для виявлення цінних інсайтів з даних. У цьому короткому посібнику ми розберемо цей процес на прості, зрозумілі кроки. Тож, давайте перейдемо до суті і розпочнемо вашу подорож у світ майстерності видобування функцій!

Що таке розробка функцій?

Під час створення моделі машинного навчання, що стосується бізнес-завдання чи дослідницької проблеми, ви використовуєте навчальні дані у вигляді таблиці зі стовпцями та рядками. У сфері аналізу даних і розробки ML стовпці називають атрибутами або змінними.

Конкретні дані, або ж рядки під цими стовпцями, називаються спостереженнями або прикладами. Стовпці, або ж атрибути, є функціями у вихідному наборі даних.

Ці вихідні функції часто є недостатніми або неоптимальними для навчання моделі ML. Для зменшення “шуму” зібраних метаданих і максимізації унікальних сигналів від функцій, необхідно трансформувати або конвертувати стовпці метаданих у корисні функції за допомогою процесу розробки функцій.

Приклад 1: Фінансове моделювання

Вихідні дані для навчання моделі ML

Наприклад, на зображенні вище стовпці від A до G є об’єктами. Значення, або ж текстові рядки в кожному стовпці, такі як імена, сума вкладу, термін вкладу, процентні ставки і т.д., є спостереженнями.

У моделюванні ML вам потрібно видаляти, додавати, комбінувати або трансформувати дані для створення значущих функцій та зменшення обсягу загальної бази навчальних даних. Це і є розробка функцій.

Приклад розробки функцій

У тому ж наборі даних, що згадувався раніше, такі функції, як “Загальна сума володіння” та “Сума відсотків” є непотрібними вхідними даними. Вони лише займатимуть більше місця та ускладнять навчання моделі ML. Отже, можна зменшити дві функції з семи.

Оскільки бази даних у моделях ML можуть містити тисячі стовпців та мільйони рядків, зменшення навіть двох функцій може значно вплинути на проект.

Приклад 2: AI Music Playlist Maker

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

Ви зібрали дані про пісні та музику з різних джерел і створили наступну базу даних:

У наведеній базі даних є сім функцій. Однак, оскільки ваша мета – навчити модель ML розпізнавати, яка пісня чи музика підходить для певної події, ви можете об’єднати такі функції як “Жанр”, “Рейтинг”, “Біт”, “Темп” та “Швидкість” в нову функцію, яку можна назвати “Відповідність”.

Тепер, завдяки досвіду чи ідентифікації шаблонів, ви можете комбінувати певні екземпляри функцій, щоб визначити, яка пісня підходить до конкретної події. Наприклад, такі спостереження як “Jazz”, “4.9”, “X3”, “Y3” та “Z1” вказують моделі ML, що пісня “Cras maximus justo et” має бути в плейлисті користувача, якщо він шукає музику для сну.

Типи функцій в машинному навчанні

Категорійні ознаки

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

#1. Порядкові категорійні ознаки

Порядкові ознаки мають категорії зі змістовним порядком. Наприклад, рівні освіти, такі як “середня школа”, “бакалавр”, “магістр” тощо, мають чітке розмежування в стандартах, але не мають кількісних відмінностей.

#2. Номінальні категорійні ознаки

Номінальні ознаки – це категорії без будь-якого внутрішнього порядку. Прикладами можуть бути кольори, країни чи види тварин. Тут також є лише якісні відмінності.

Особливості масиву

Цей тип ознак представляє дані, впорядковані у вигляді масивів або списків. Аналітики даних і розробники ML часто використовують Array Features для обробки послідовностей або вбудовування категорійних даних.

#1. Функції вбудовування масиву

Вбудовані масиви перетворюють категорійні дані в щільні вектори. Він часто використовується в обробці природної мови та системах рекомендацій.

#2. Функції масиву списку

Масиви списків зберігають послідовності даних, наприклад списки елементів у певному порядку або історію дій.

Числові особливості

Ці функції навчання ML використовуються для виконання математичних операцій, оскільки вони представляють кількісні дані.

#1. Інтервальні числові ознаки

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

#2. Числові характеристики співвідношення

Функції співвідношення мають узгоджені інтервали між значеннями і справжню нульову точку. Приклади включають вік, зріст та дохід.

Важливість інженерії функцій у ML та Data Science

  • Ефективне виділення ознак покращує точність моделі, роблячи прогнози більш надійними та корисними для прийняття рішень.
  • Ретельний вибір функцій усуває нерелевантні або зайві атрибути, спрощуючи моделі та заощаджуючи обчислювальні ресурси.
  • Добре розроблені функції виявляють закономірності в даних, допомагаючи фахівцям з обробки даних краще розуміти складні взаємозв’язки у наборі даних.
  • Адаптація функцій до конкретних алгоритмів може оптимізувати продуктивність моделі для різних методів машинного навчання.
  • Якісно підготовлені функції сприяють швидшому навчанню моделі та знижують витрати на обчислення, оптимізуючи робочий процес ML.

Далі ми розглянемо покроковий процес розробки функцій.

Процес розробки функцій крок за кроком

  • Збір даних: початковий етап передбачає збір вихідних даних з різноманітних джерел, таких як бази даних, файли або API.
  • Очищення даних: отримавши дані, ви повинні очистити їх, виявивши та виправивши будь-які помилки, невідповідності чи викиди.
  • Обробка відсутніх значень: відсутні значення можуть заплутати навчальний набір функцій моделі ML. Якщо ви їх проігноруєте, ваша модель буде упередженою. Отже, ви повинні дослідити їх ретельно, щоб ввести відсутні значення або обережно пропустити їх, не впливаючи на модель з упередженням.
  • Кодування категоріальних змінних: ви повинні перетворити категорійні змінні в числовий формат для алгоритмів машинного навчання.
  • Масштабування та нормалізація: Масштабування гарантує, що числові характеристики мають узгоджений масштаб. Це запобігає домінуванню функцій з великими значеннями в моделі машинного навчання.
  • Вибір функцій: цей крок допомагає визначити та зберегти найбільш відповідні функції, зменшуючи розмірність і підвищуючи ефективність моделі.
  • Створення функцій: іноді нові функції можуть бути створені на основі існуючих для отримання цінної інформації.
  • Перетворення функцій: такі методи перетворення, як логарифмічні або степеневі перетворення, можуть зробити ваші дані більш придатними для моделювання.

Далі ми розглянемо методи розробки функцій.

Інженерні методи особливостей

#1. Аналіз головних компонентів (PCA)

PCA спрощує складні дані, виявляючи нові, некорельовані функції. Їх називають головними компонентами. Ви можете використовувати їх для зменшення розмірності та покращення продуктивності моделі.

#2. Характеристики поліномів

Створення поліноміальних функцій означає додавання ступенів існуючих функцій для врахування складних взаємозв’язків у ваших даних. Це допомагає вашій моделі зрозуміти нелінійні закономірності.

#3. Обробка викидів

Викиди – це нетипові точки даних, які можуть вплинути на продуктивність ваших моделей. Щоб запобігти спотворенню результатів, вам слід визначити та опрацювати викиди.

#4. Перетворення журналу

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

#5. t-розподілене стохастичне вбудовування сусідів (t-SNE)

t-SNE корисний для візуалізації багатовимірних даних. Він зменшує розмірність і робить кластери більш очевидними, зберігаючи структуру даних.

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

Він відрізняється від інших методів зменшення розмірності тим, що зберігає структуру та відстань між точками даних.

#6. One-Hot кодування

One-hot кодування перетворює категоріальні змінні в двійковий формат (0 або 1). Таким чином, ви отримуєте нові двійкові стовпці для кожної категорії. One-hot кодування робить категорійні дані придатними для алгоритмів ML.

#7. Кодування підрахунком

Кодування підрахунком замінює категорійні значення кількістю їх появи в наборі даних. Він може виявляти цінну інформацію з категоріальних змінних.

У цьому методі розробки ознак ви використовуєте частоту або кількість кожної категорії як нову числову функцію замість використання оригінальних міток категорії.

#8. Стандартизація функцій

Характеристики з більшими значеннями часто домінують над характеристиками з малими значеннями. Тому модель ML може легко стати упередженою. Стандартизація запобігає цим причинам упереджень в моделі машинного навчання.

Процес стандартизації зазвичай включає наступні дві поширені техніки:

  • Стандартизація Z-показника: цей метод перетворює кожну ознаку так, щоб вона мала середнє (середнє значення) 0 і стандартне відхилення 1. Тут ви віднімаєте середнє значення функції з кожної точки даних і ділите результат на стандартне відхилення.
  • Мінімально-максимальне масштабування: мінімально-максимальне масштабування перетворює дані в певний діапазон, зазвичай від 0 до 1. Ви можете досягти цього, віднявши мінімальне значення функції з кожної точки даних і поділивши його на діапазон.

#9. Нормалізація

За допомогою нормалізації числові функції масштабуються до загального діапазону, зазвичай від 0 до 1. Це зберігає відносні відмінності між значеннями та гарантує, що всі функції перебувають в однакових умовах.

#1. Функціональні інструменти

Функціональні інструменти це платформа Python з відкритим кодом, яка автоматично генерує функції з часових і реляційних наборів даних. Її можна використовувати з інструментами, які ви вже застосовуєте для створення конвеєрів ML.

Рішення використовує Deep Feature Synthesis для автоматизації процесу розробки функцій. Воно має бібліотеку низькорівневих функцій для створення функцій. Featuretools також має API, який ідеально підходить для точної обробки часу.

#2. CatBoost

Якщо ви шукаєте бібліотеку з відкритим вихідним кодом, яка об’єднує декілька дерев рішень для створення потужної прогнозної моделі, вибирайте CatBoost. Це рішення пропонує точні результати з налаштуваннями за замовчуванням, тому вам не доведеться витрачати години на точне налаштування параметрів.

CatBoost також дозволяє використовувати нечислові коефіцієнти для покращення результатів навчання. З ним ви також можете розраховувати на більш точні результати та швидкі прогнози.

#3. Feature-Engine

Feature-Engine це бібліотека Python з кількома трансформаторами та вибраними функціями, які можна використовувати для моделей ML. Трансформатори, які вона включає, можна використовувати для перетворення змінних, створення змінних, функцій дати та часу, попередньої обробки, категоріального кодування, обмеження або видалення викидів та імпутації відсутніх даних. Вона здатна автоматично розпізнавати числові, категоріальні змінні та змінні дати й часу.

Навчальні ресурси з інженерії функцій

Онлайн-курси та віртуальні заняття

#1. Розробка функцій для машинного навчання на Python: Datacamp

Цей Datacamp курс з розробки функцій для машинного навчання на Python дозволяє створювати нові функції, що покращують продуктивність моделі машинного навчання. Він навчить вас розробляти функції та обробляти дані для розробки складних програм ML.

#2. Розробка функцій для машинного навчання: Udemy

На курсі розробки функцій для машинного навчання ви дізнаєтеся про такі теми як імпутація, кодування змінних, виділення ознак, дискретизація, функціональність дати та часу, викиди тощо. Учасники також навчаться працювати з асиметричними змінними та мати справу з нечастими, невидимими та рідкісними категоріями.

#3. Розробка функцій: Pluralsight

Цей навчальний шлях Pluralsight складається з шести курсів. Ці курси допоможуть вам дізнатися про важливість розробки функцій у робочому процесі машинного навчання, способи застосування її методів і вилучення функцій з тексту та зображень.

#4. Вибір функцій для машинного навчання: Udemy

За допомогою цього курсу Udemy учасники можуть вивчити методи перемішування функцій, фільтрів, обгорток і вбудованих методів, рекурсивне видалення функцій і вичерпний пошук. Він також розглядає методи вибору функцій, зокрема ті, що використовують Python, Lasso і дерева рішень. Цей курс містить 5,5 годин відео на вимогу та 22 статті.

#5. Розробка функцій для машинного навчання: Great Learning

Цей курс від Great Learning ознайомить вас з розробкою функцій, а також навчить вас про надмірну та недостатню вибірку. Крім того, він дозволить вам виконувати практичні вправи з налаштування моделі.

#6. Розробка функцій: Coursera

Приєднуйтесь до Coursera, щоб використовувати BigQuery ML, Keras і TensorFlow для розробки функцій. Цей курс середнього рівня також охоплює передові методи розробки функцій.

Книги у цифровому або паперовому вигляді

#1. Розробка функцій для машинного навчання

Ця книга навчить вас перетворювати функції у формати, що підходять для моделей машинного навчання.

Вона також навчає вас інженерним принципам і практичному застосуванню за допомогою вправ.

#2. Розробка та вибір функцій

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

З неї ви можете навчитися прийомам пошуку найкращих представлень предикторів для моделювання.

#3. Розробка функцій стала легкою

Книга є посібником з підвищення можливостей прогнозування алгоритмів машинного навчання.

Вона навчить вас розробляти та створювати ефективні функції для додатків на основі машинного навчання, пропонуючи глибокий аналіз.

#4. Особливий інженерний книжковий табір

Ця книга присвячена практичним тематичним дослідженням, щоб навчити вас методам розробки функцій для кращих результатів машинного навчання та оновленої обробки даних.

Прочитавши це, ви зможете отримати кращі результати, не витрачаючи багато часу на точне налаштування параметрів ML.

#5. Мистецтво розробки функцій

Цей ресурс є важливим для будь-якого фахівця з аналізу даних або інженера з машинного навчання.

У книзі використовується міждоменний підхід для обговорення графіків, текстів, часових рядів, зображень і тематичних досліджень.

Висновок

Отже, ви можете успішно застосувати розробку функцій. Тепер, коли ви знайомі з визначенням, покроковим процесом, методами та навчальними ресурсами, ви можете використовувати їх у своїх проектах ML і досягти успіху!

Далі розгляньте статтю про навчання з підкріпленням.