Необроблені дані мають пройти через конструювання ознак (трансформації). Коли слід трансформувати дані? Загалом, конструювання ознак можна виконати протягом будь-якого із цих двох періодів:
- перед навчанням моделі;
- під час навчання моделі.
Трансформація даних перед навчанням
Цей підхід передбачає два кроки:
- Написати код або використовувати спеціалізовані інструментидля трансформації необроблених даних.
- Зберегти трансформовані дані в місці, з якого модель могла отримати й імпортувати їх (наприклад, на диску).
Переваги
- Система трансформує необроблені дані лише один раз.
- Система може аналізувати весь набір даних, щоб визначити найкращу стратегію трансформації.
Недоліки
- Необхідно відтворити трансформації під час прогнозування. Остерігайтеся розбіжностей між даними в навчальному й робочому режимах!
Розбіжності між даними в навчальному й робочому режимах є більш небезпечними, коли ваша система виконує динамічне (онлайн) прогнозування. У системах із динамічним прогнозуванням програмне забезпечення, що трансформує необроблений набір даних, зазвичай відрізняється від того, яке подає прогнози, що може призвести до розбіжностей між даними в навчальному й робочому режимах. Для порівняння, системи, що виконують статичне (офлайн) прогнозування, іноді можуть використовувати те саме програмне забезпечення.
Трансформація даних під час навчання
За цим підходом за трансформацію відповідає частина коду моделі. Модель отримує і імпортує необроблені дані й трансформує їх.
Переваги
- Можна використовувати ті самі файли необроблених даних, якщо ви вирішили змінити трансформації.
- Трансформації, що виконуються під час навчання й прогнозування, гарантовано будуть однакові.
Недоліки
- Складні трансформації можуть збільшити затримку моделі.
- Трансформується кожен пакет.
Трансформація даних пакет за пакетом може бути складним процесом. Припустімо, що ви хочете використовувати нормалізацію значення Z, щоб трансформувати необроблені числові дані. Для нормалізації значення Z потрібні середнє значення й стандартне відхилення ознаки. Однак якщо дані трансформуються пакет за пакетом, ви матимете доступ лише до одного їх пакета, а не до повного набору. Отже, якщо дані пакетів дуже відрізняються, значення Z, наприклад, –2,5 матиме тільки один із них, а не всі. Щоб це не стало проблемою, система може попередньо обчислити середнє значення й стандартне відхилення для всього набору даних, а потім використовувати їх як константи в моделі.