Зображення з Pexels
Минулої зими я зробив презентацію на тему "Більш передбачувана модель часових рядів з BQML'у GDG DevFest Tashkent 2022 в Ташкенті, столиці Узбекистану.
Я збирався поділитися деякими матеріалами та кодом після DevFest, який я використав у презентації, але минув час, і в BQML було випущено нові функції, які частково перекривають вміст.
Тому замість цього я коротко згадаю нові функції та деякі з речей, які все ще діють.
Дані часових рядів використовується багатьма організаціями для різних цілей, і важливо зазначити, що "прогнозна аналітикаs» — це все про «майбутнє» в часі. Прогностична аналітика часових рядів використовувалася в короткостроковій, середньостроковій і довгостроковій перспективах, і хоча вона містить багато неточностей і ризиків, вона також постійно вдосконалюється.
Оскільки «передбачення» здається дуже корисним, у вас може виникнути спокуса застосувати модель прогнозування часових рядів, якщо у вас є дані часових рядів. Але моделі прогнозування часових рядів зазвичай вимагають інтенсивних обчислень, і якщо у вас багато даних, це буде більш інтенсивним обчисленням. Тому обробляти його, завантажувати в аналітичне середовище та аналізувати це громіздко й важко
Якщо ви використовуєте Google BigQuery для керування даними можна використовувати BQML (BigQuery ML), щоб застосувати алгоритми машинного навчання до ваших даних простим, легким і швидким способом. Багато людей використовують BigQuery для обробки великої кількості даних, і багато з цих даних часто є даними часових рядів. І BQML також підтримує моделі часових рядів.
Основою моделі часових рядів, яка зараз підтримується BQML, є Авторегресійне інтегроване ковзне середнє (ARIMA) модель. Модель ARIMA прогнозує, використовуючи лише наявні дані часових рядів, і, як відомо, вона має гарну продуктивність короткострокового прогнозування, і оскільки вона поєднує в собі AR і MA, це популярна модель, яка може охоплювати широкий спектр моделей часових рядів.
Однак ця модель загалом потребує обчислень, і оскільки вона використовує лише дані часових рядів із нормальністю, її важко використовувати у випадках із тенденціями чи сезонністю. тому ARIMA_PLUS у BQML містить кілька додаткових функцій як параметри. Ви можете додати до своєї моделі декомпозицію часових рядів, фактори сезонності, стрибки та спади, зміни коефіцієнтів тощо, або ви можете переглянути їх окремо та вручну налаштувати модель. Особисто мені також подобається той факт, що ви можете налаштувати періодичність, автоматично додаючи варіанти свят, що є однією з переваг використання платформи, яка не вимагає від вас вручну додавати інформацію, пов’язану з датами.
Структура ARIMA_PLUS (від Посібник з BQML)
Ви можете посилатися на це сторінка для отримання додаткової інформації.
Однак, коли мова заходить про реальні додатки, прогнозувати часові ряди не так просто, як це. Звичайно, ми змогли ідентифікувати кілька циклів і додати втручання до кількох часових рядів за допомогою ARIMA_PLUS, але існує багато зовнішніх факторів, пов’язаних з даними часових рядів, і лише дуже мало подій відбуваються ізольовано. У даних часових рядів може бути важко знайти стаціонарність.
У оригінальній презентації я розглянув, як працювати з цими реальними даними часових рядів для створення моделі прогнозування, щоб розкласти ці часові ряди, очистіть розкладені дані, імпортуйте їх у Python, а потім поєднати його з іншими змінними, щоб створити функцію багатовимірного часового ряду, оцінити причинно-наслідковий зв’язок і включити його в модель прогнозування, а також оцінити ступінь, до якої ефект змінюється зі змінами подій.
І лише за останні кілька місяців, нова функція для створення багатовимірних функцій часових рядів із зовнішніми змінними(ARIMA_PLUS_XREG, XREG нижче) стала прямою функцією BQML.
Ви можете про це все прочитати тут(це в попередній версії станом на липень 2023 року, але я припускаю, що він буде доступний пізніше цього року).
Я подаю заявку офіційний підручник щоб побачити, як вона порівнюється з традиційною однофакторною моделлю часових рядів, і ми можемо побачити, як це працює.
Кроки такі самі, як і в підручнику, тому я не буду їх дублювати, але ось дві створені мною моделі. Спочатку я створив традиційний ARIMA_PLUS модель, а потім ан XREG модель, використовуючи ті самі дані, але додаючи температуру та швидкість вітру в той час.
# ARIMA_PLUS
# ARIMA_PLUS
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_plus_model
OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
#ARIMA_PLUS_XREG
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_xreg_model OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS_XREG', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25, temperature, wind_speed
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
Модель, яка використовує ці численні дані, виглядатиме приблизно так
Структура ARIMA_PLUS_XREG (від Посібник з BQML)
Дві моделі порівнюються з ML.Evaluate.
SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_plus_model, ( SELECT date, pm25 FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ))
SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_xreg_model, ( SELECT date, pm25, temperature, wind_speed FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ), STRUCT( TRUE AS perform_aggregation, 30 AS horizon))
Результати нижче.
ARIMA_PLUS
ARIMA_PLUS_XREG
Ви можете побачити, що Модель XREG випереджає базові показники продуктивності, такі як MAE, MSE і MAPE. (Очевидно, що це не ідеальне рішення, залежить від даних, і ми можемо просто сказати, що ми отримали ще один корисний інструмент.)
Багатовимірний аналіз часових рядів є дуже необхідною опцією в багатьох випадках, але її часто важко застосувати через різні причини. Тепер ми можемо використовувати його, якщо причини криються в даних і етапах аналізу. Схоже, у нас є хороший варіант для цього, тому добре знати про нього, і, сподіваюся, він буде корисним у багатьох випадках.
Чон Мін Квон є позаштатним старшим спеціалістом з обробки даних із понад 10 роками практичного досвіду використання моделей машинного навчання та інтелектуального аналізу даних.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://www.kdnuggets.com/2023/07/multivariate-timeseries-prediction-bqml.html?utm_source=rss&utm_medium=rss&utm_campaign=multivariate-time-series-prediction-with-bqml
- : має
- :є
- : ні
- :де
- $UP
- 2023
- 30
- a
- Здатний
- МЕНЮ
- про це
- додавати
- додати
- Додатковий
- після
- попереду
- алгоритми
- ВСІ
- Також
- an
- аналіз
- аналітика
- аналізувати
- та
- Інший
- застосування
- Застосовувати
- AR
- ЕСТЬ
- AS
- At
- автоматично
- доступний
- середній
- основний
- основа
- BE
- ставати
- було
- нижче
- Переваги
- між
- великий запит
- коротко
- але
- by
- CAN
- капітал
- випадків
- Зміни
- код
- комбінати
- приходить
- співтовариство
- порівняний
- зміст
- курс
- обкладинка
- створювати
- створений
- створення
- В даний час
- циклів
- дані
- управління даними
- видобуток даних
- вчений даних
- Дата
- Дати
- угода
- Ступінь
- важкий
- Ні
- два
- легко
- ефект
- Навколишнє середовище
- оцінити
- оцінювати
- Події
- існуючий
- досвід
- зовнішній
- факт
- фактори
- ШВИДКО
- особливість
- риси
- кілька
- знайти
- Перший
- для
- позаштатний
- від
- функція
- Функції
- Go
- буде
- добре
- практичний
- траплятися
- Жорсткий
- Мати
- тут
- свято
- З надією
- горизонт
- Як
- How To
- HTTPS
- i
- Я БУДУ
- ідентифікувати
- if
- імпорт
- важливо
- поліпшення
- in
- includes
- включати
- включення
- інформація
- замість
- інтегрований
- в
- ізоляція
- IT
- JPG
- липень
- просто
- KDnuggets
- Знати
- відомий
- останній
- пізніше
- вивчення
- використання
- як
- загрузка
- Довго
- подивитися
- подивився
- ВИГЛЯДИ
- серія
- машина
- навчання за допомогою машини
- Робить
- управління
- вручну
- багато
- матеріал
- середа
- Метрика
- може бути
- Mining
- ML
- модель
- Моделі
- місяців
- більше
- переміщення
- moving average
- дуже потрібний
- множинний
- Нові
- Нова функція
- Нові можливості
- зараз
- of
- офіційний
- часто
- on
- ONE
- тільки
- варіант
- Опції
- or
- організації
- оригінал
- Інше
- загальний
- Пройшов
- Люди
- ідеальний
- продуктивність
- Особисто
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- популярний
- Передбачуваний
- прогноз
- Прогностична аналітика
- Прогнози
- Presentation
- попередній перегляд
- процес
- цілей
- Python
- діапазон
- Читати
- Реальний світ
- Причини
- пов'язаний
- випущений
- замінювати
- вимагати
- ризики
- то ж
- say
- вчений
- побачити
- Здається,
- старший
- Серія
- кілька
- Поділитись
- Короткий
- короткий термін
- простий
- з
- So
- рішення
- деякі
- що в сім'ї щось
- швидкість
- шипи
- заходи
- Як і раніше
- такі
- Підтриманий
- Опори
- термін
- Що
- Команда
- Капітал
- Їх
- потім
- Там.
- отже
- Ці
- речі
- це
- У цьому році
- через
- час
- Часовий ряд
- до
- інструмент
- традиційний
- Тенденції
- правда
- підручник
- два
- використання
- використовуваний
- використовує
- використання
- зазвичай
- використовує
- узбекистан
- різноманітність
- різний
- дуже
- було
- шлях..
- we
- коли
- який
- в той час як
- широкий
- Широкий діапазон
- Вікіпедія
- волі
- вітер
- Зима
- з
- працює
- б
- рік
- років
- ви
- вашу
- зефірнет