Часові ряди — це послідовності точок даних, які виникають у послідовному порядку протягом певного періоду часу. Ми часто аналізуємо ці дані, щоб приймати кращі бізнес-рішення або отримати конкурентні переваги. Прикладом є Шімамура Музика, який використовував Прогноз Amazon до покращити рівень дефіциту та підвищити ефективність бізнесу. Іншим чудовим прикладом є Арнег, який використовував Forecast для прогнозувати потреби в обслуговуванні.
AWS надає різноманітні послуги, що обслуговують дані часових рядів із низьким кодом або відсутністю коду, які можуть використовувати як спеціалісти з машинного навчання (ML), так і не-ML-практики для створення рішень ML. Сюди входять бібліотеки та подібні служби Автоглюон, Canvas Amazon SageMaker, Amazon SageMaker Data Wrangler, Автопілот Amazon SageMaker та Прогноз Amazon.
У цій публікації ми прагнемо розділити набір даних часового ряду на окремі кластери, які демонструють вищий ступінь подібності між точками даних і зменшують шум. Мета полягає в тому, щоб підвищити точність шляхом навчання глобальної моделі, яка містить конфігурацію кластера, або використання локальних моделей, специфічних для кожного кластера.
Ми досліджуємо, як отримати характеристики, які також називають риси, з даних часових рядів за допомогою Бібліотека TSFresh— пакет Python для обчислення великої кількості характеристик часових рядів — і виконання кластеризації за допомогою Алгоритм K-середніх реалізовано в бібліотека scikit-learn.
Ми використовуємо кластеризація часових рядів за допомогою TSFresh + KMeans зошит, який доступний на нашому GitHub репо. Рекомендуємо запустити цей ноутбук Студія Amazon SageMaker, веб-інтегроване середовище розробки (IDE) для ML.
Огляд рішення
Кластеризація — це неконтрольована техніка ML, яка групує елементи разом на основі метрики відстані. Евклідова відстань найчастіше використовується для непослідовних наборів даних. Однак, оскільки часовий ряд за своєю суттю має послідовність (мітку часу), евклідова відстань не працює належним чином, коли використовується безпосередньо на часових рядах, оскільки вона інваріантна до часових зсувів, ігноруючи часовий вимір даних. Для більш детального пояснення див Класифікація часових рядів і кластеризація за допомогою Python. Кращим показником відстані, який працює безпосередньо з часовими рядами, є Dynamic Time Warping (DTW). Приклад кластеризації на основі цього показника див Кластерні дані часових рядів для використання з Amazon Forecast.
У цій публікації ми генеруємо функції з набору даних часових рядів за допомогою бібліотеки TSFresh Python для вилучення даних. TSFresh це бібліотека, яка обчислює велику кількість характеристик часових рядів, які включають серед іншого стандартне відхилення, квантиль та ентропію Фур’є. Це дозволяє нам усунути часову розмірність набору даних і застосувати загальні методи, які працюють для даних зі зведеними форматами. Крім TSFresh ми також використовуємо StandardScaler, який стандартизує ознаки шляхом видалення середнього значення та масштабування до одиничної дисперсії, а також Аналіз головних компонентів (PCA), щоб виконати зменшення розмірності. Масштабування зменшує відстань між точками даних, що, у свою чергу, сприяє стабільності процесу навчання моделі, а зменшення розмірності дозволяє моделі вивчати меншу кількість функцій, зберігаючи основні тенденції та шаблони, що забезпечує більш ефективне навчання.
Завантаження даних
Для цього прикладу ми використовуємо Набір даних UCI Online Retail II і виконайте основні етапи очищення та підготовки даних, як описано в Блокнот для очищення та підготовки даних.
Вилучення функцій за допомогою TSFresh
Давайте почнемо з використання TSFresh для вилучення характеристик із нашого набору даних часових рядів:
Зауважте, що наші дані було перетворено з часового ряду в таблицю порівняння StockCode
цінності проти Feature values
.
Далі ми скидаємо всі функції з n/a
значення, використовуючи dropna
метод:
Потім ми масштабуємо функції за допомогою StandardScaler
. Значення витягнутих ознак складаються як з негативних, так і з позитивних значень. Тому використовуємо StandardScaler
замість MinMaxScaler:
Ми використовуємо PCA для зменшення розмірності:
І визначаємо оптимальну кількість компонентів для PCA:
Пояснене відношення дисперсії - це відсоток дисперсії, приписаний кожному з вибраних компонентів. Як правило, ви визначаєте кількість компонентів, які слід включити у вашу модель, кумулятивно додаючи пояснений коефіцієнт дисперсії кожного компонента, поки не досягнете 0.8–0.9, щоб уникнути переобладнання. Оптимальне значення зазвичай припадає на ліктьовий згин.
Як показано на наступній діаграмі, значення ліктя становить приблизно 100. Тому ми використовуємо 100 як кількість компонентів для PCA.
Кластеризація з K-Means
Тепер давайте використаємо K-середні з метрикою евклідової відстані для кластеризації. У наступному фрагменті коду ми визначаємо оптимальну кількість кластерів. Додавання додаткових кластерів зменшує значення інерції, але також зменшує інформацію, що міститься в кожному кластері. Крім того, більше кластерів означає більше локальних моделей для підтримки. Тому ми хочемо мати невеликий розмір кластера з відносно низьким значенням інерції. Евристика ліктя добре працює для пошуку оптимальної кількості кластерів.
Наступна діаграма візуалізує наші висновки.
На основі цієї діаграми ми вирішили використовувати два кластери для K-середніх. Ми прийняли це рішення, оскільки сума квадратів усередині кластера (WCSS) зменшується з найвищою швидкістю між одним і двома кластерами. Важливо збалансувати легкість обслуговування з продуктивністю та складністю моделі, тому що, хоча WCSS продовжує зменшуватися із збільшенням кількості кластерів, додаткові кластери збільшують ризик переобладнання. Крім того, незначні зміни в наборі даних можуть неочікувано знизити точність.
Важливо зазначити, що обидва методи кластеризації, K-середні з евклідовою відстанню (обговорюються в цій публікації) і Алгоритм K-середніх з DTW, мають свої сильні та слабкі сторони. Найкращий підхід залежить від характеру ваших даних і методів прогнозування, які ви використовуєте. Тому ми настійно рекомендуємо поекспериментувати з обома підходами та порівняти їх ефективність, щоб отримати більш цілісне розуміння ваших даних.
Висновок
У цій публікації ми обговорили потужні методи вилучення ознак і кластеризації для даних часових рядів. Зокрема, ми показали, як використовувати TSFresh, популярну бібліотеку Python для вилучення функцій, для попередньої обробки даних часових рядів і отримання значущих функцій.
Після завершення етапу кластеризації ви можете навчити кілька моделей прогнозу для кожного кластера або використовувати конфігурацію кластера як функцію. Зверніться до Посібник розробника Amazon Forecast для інформації про поглинання даних, навчання провісників та формування прогнозів. Якщо у вас є метадані елемента та пов’язані дані часових рядів, ви також можете включити їх як вхідні набори даних для навчання в Forecast. Для отримання додаткової інформації див Почніть свій успішний шлях із прогнозування часових рядів за допомогою Amazon Forecast.
посилання
Про авторів
Олександр Патрушев є архітектором спеціалізованих рішень AI/ML в AWS, що базується в Люксембурзі. Він захоплений хмарою та машинним навчанням, а також тим, як вони можуть змінити світ. Поза роботою любить піші прогулянки, спорт і час із сім’єю.
Чонг Ен Лім є архітектором рішень в AWS. Він завжди шукає способи допомогти клієнтам впроваджувати інновації та вдосконалювати їхні робочі процеси. У вільний час він любить дивитися аніме і слухати музику.
Єгор Мясников є архітектором рішень в AWS, що базується в Німеччині. Він захоплений цифровою трансформацією нашого життя, бізнесу та самого світу, а також роллю штучного інтелекту в цій трансформації. Поза роботою він любить читати пригодницькі книжки, ходити в походи та проводити час із сім’єю.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/boost-your-forecast-accuracy-with-time-series-clustering/
- :є
- 1
- 10
- 100
- 7
- 8
- 9
- a
- МЕНЮ
- точність
- доповнення
- Додатковий
- Додатково
- Переваги
- пригода
- AI / ML
- алгоритм
- ВСІ
- дозволяє
- хоча
- завжди
- Amazon
- серед
- аналізувати
- та
- Аніме
- Інший
- Застосовувати
- підхід
- підходи
- приблизно
- ЕСТЬ
- штучний
- штучний інтелект
- AS
- At
- доступний
- уникнути
- AWS
- Balance
- заснований
- основний
- оскільки
- КРАЩЕ
- Краще
- між
- книги
- підвищення
- Створюємо
- бізнес
- підприємства
- by
- обчислює
- званий
- CAN
- зміна
- характеристика
- Графік
- класифікація
- Очищення
- хмара
- кластер
- Кластеризація
- код
- загальний
- зазвичай
- порівняння
- конкурентоспроможний
- повний
- складність
- компонент
- Компоненти
- обчислення
- конфігурація
- містить
- триває
- перероблений
- може
- Клієнти
- дані
- точки даних
- набори даних
- вирішене
- рішення
- рішення
- зменшити
- Ступінь
- залежить
- докладно
- Визначати
- Розробник
- розробка
- відхилення
- цифровий
- цифрове перетворення
- Розмір
- безпосередньо
- обговорювалися
- відстань
- Ні
- Падіння
- динамічний
- кожен
- ефективний
- або
- дозволяє
- Навколишнє середовище
- Ефір (ETH)
- приклад
- проявляти
- пояснені
- пояснення
- дослідити
- Дослідження
- витяг
- видобуток
- сім'я
- особливість
- риси
- виявлення
- після
- для
- Прогноз
- Безкоштовна
- від
- Крім того
- Отримувати
- породжувати
- Німеччина
- Глобальний
- Глуон
- великий
- Групи
- Мати
- допомога
- вище
- найвищий
- дуже
- піший туризм
- цілісний
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- i
- ICS
- реалізовані
- імпорт
- важливо
- удосконалювати
- in
- включати
- includes
- Augmenter
- індивідуальний
- інерція
- інформація
- оновлювати
- вхід
- замість
- інтегрований
- Інтелект
- IT
- пунктів
- ЙОГО
- сам
- подорож
- великий
- УЧИТЬСЯ
- вивчення
- libraries
- бібліотека
- як
- Прослуховування
- Місце проживання
- місцевий
- низький
- Люксембург
- машина
- навчання за допомогою машини
- made
- підтримувати
- обслуговування
- основний
- зробити
- значущим
- засоби
- метадані
- метод
- методика
- метрика
- ML
- модель
- Моделі
- більше
- більш ефективний
- найбільш
- множинний
- музика
- природа
- негативний
- шум
- ноутбук
- номер
- отримувати
- of
- on
- ONE
- онлайн
- мережі роздрібної торгівлі
- оптимальний
- порядок
- інші
- поза
- пакет
- пристрасний
- моделі
- відсоток
- виконувати
- продуктивність
- period
- plato
- Інформація про дані Платона
- PlatoData
- точок
- популярний
- позитивний
- пошта
- потужний
- процес
- сприяє
- забезпечує
- мета
- Python
- ставка
- ставки
- співвідношення
- досягати
- читання
- рекомендувати
- зменшити
- знижує
- пов'язаний
- щодо
- видаляти
- видалення
- роздрібна торгівля
- утримує
- Risk
- Роль
- біг
- мудрець
- шкала
- Масштабування
- Шукати
- обраний
- окремий
- Послідовність
- Серія
- Послуги
- Зміни
- нестача
- показаний
- Розмір
- невеликий
- Рішення
- деякі
- спеціаліст
- конкретний
- конкретно
- Витрати
- SPORTS
- квадрати
- Стабільність
- standard
- старт
- Крок
- заходи
- сильні сторони
- успішний
- таблиця
- методи
- Що
- Команда
- інформація
- світ
- їх
- тим самим
- отже
- Ці
- час
- Часовий ряд
- відмітка часу
- до
- разом
- поїзд
- Навчання
- Перетворення
- Тенденції
- ПЕРЕГЛЯД
- типово
- розуміння
- блок
- us
- використання
- зазвичай
- використовує
- значення
- Цінності
- різний
- vs
- спостереження
- шлях..
- способи
- Web-Based
- ДОБРЕ
- який
- в той час як
- ВООЗ
- з
- Work
- Робочі процеси
- працює
- світ
- вашу
- зефірнет