19 KiB
Увод у предвиђање временских серија
Скица од Томоми Имура
У овој лекцији и наредној, научићете нешто о предвиђању временских серија, занимљивом и вредном делу репертоара научника за машинско учење, који је мање познат у односу на друге теме. Предвиђање временских серија је нека врста „кристалне кугле“: на основу претходних перформанси неке променљиве, као што је цена, можете предвидети њену будућу потенцијалну вредност.
🎥 Кликните на слику изнад за видео о предвиђању временских серија
Квиз пре предавања
Ово је корисно и занимљиво поље са стварном вредношћу за пословање, с обзиром на његову директну примену у решавању проблема цена, залиха и ланца снабдевања. Иако су технике дубоког учења почеле да се користе за добијање бољих увида ради прецизнијег предвиђања будућих перформанси, предвиђање временских серија остаје поље које се у великој мери ослања на класичне технике машинског учења.
Корисни наставни план и програм за временске серије са Универзитета Пен Стејт можете пронаћи овде
Увод
Претпоставимо да одржавате низ паметних паркинг метара који пружају податке о томе колико често се користе и колико дуго током времена.
Шта ако бисте могли да предвидите, на основу претходних перформанси метра, његову будућу вредност у складу са законима понуде и потражње?
Прецизно предвиђање када треба деловати како бисте постигли свој циљ је изазов који би могао бити решен предвиђањем временских серија. Људи можда не би били срећни да плаћају више у ужурбаним временима када траже паркинг место, али то би био сигуран начин за генерисање прихода за чишћење улица!
Хајде да истражимо неке врсте алгоритама за временске серије и започнемо рад у бележници како бисмо очистили и припремили неке податке. Подаци које ћете анализирати преузети су са такмичења за предвиђање GEFCom2014. Они садрже три године података о сатној потрошњи електричне енергије и температури између 2012. и 2014. године. С обзиром на историјске обрасце потрошње електричне енергије и температуре, можете предвидети будуће вредности потрошње електричне енергије.
У овом примеру, научићете како да предвидите један корак унапред, користећи само историјске податке о потрошњи. Међутим, пре него што почнете, корисно је разумети шта се дешава „иза сцене“.
Неке дефиниције
Када наиђете на термин „временске серије“, потребно је да разумете његову употребу у неколико различитих контекста.
🎓 Временске серије
У математици, „временске серије су низ података индексираних (или наведених или графички приказаних) у временском редоследу. Најчешће, временске серије су секвенца узета у једнако размакнутим тачкама у времену.“ Пример временских серија је дневна завршна вредност Дау Џонс индустријског просека. Употреба графикона временских серија и статистичког моделирања често се среће у обради сигнала, предвиђању времена, предвиђању земљотреса и другим областима где се догађаји дешавају и подаци могу бити приказани током времена.
🎓 Анализа временских серија
Анализа временских серија је анализа горе поменутих података временских серија. Подаци временских серија могу имати различите облике, укључујући „прекинуте временске серије“ које откривају обрасце у еволуцији временских серија пре и после неког прекидајућег догађаја. Тип анализе који је потребан за временске серије зависи од природе података. Подаци временских серија могу бити у облику низа бројева или карактера.
Анализа која се спроводи користи разне методе, укључујући методе у домену фреквенције и времена, линеарне и нелинеарне, и друге. Сазнајте више о многим начинима анализе ове врсте података.
🎓 Предвиђање временских серија
Предвиђање временских серија је употреба модела за предвиђање будућих вредности на основу образаца приказаних у претходно прикупљеним подацима. Иако је могуће користити регресионе моделе за истраживање података временских серија, са временским индексима као x-променљивама на графикону, такви подаци се најбоље анализирају коришћењем посебних типова модела.
Подаци временских серија су листа уређених запажања, за разлику од података који се могу анализирати линеарном регресијом. Најчешћи модел је ARIMA, акроним за „Ауторегресивни интегрисани покретни просек“.
ARIMA модели „повезују тренутну вредност серије са претходним вредностима и претходним грешкама у предвиђању.“ Они су најприкладнији за анализу података у временском домену, где су подаци уређени током времена.
Постоји неколико типова ARIMA модела, о којима можете сазнати више овде и које ћете обрадити у наредној лекцији.
У наредној лекцији, изградићете ARIMA модел користећи Униваријантне временске серије, које се фокусирају на једну променљиву која мења своју вредност током времена. Пример ове врсте података је овај скуп података који бележи месечну концентрацију CO2 на опсерваторији Мауна Лоа:
CO2 | YearMonth | Year | Month |
---|---|---|---|
330.62 | 1975.04 | 1975 | 1 |
331.40 | 1975.13 | 1975 | 2 |
331.87 | 1975.21 | 1975 | 3 |
333.18 | 1975.29 | 1975 | 4 |
333.92 | 1975.38 | 1975 | 5 |
333.43 | 1975.46 | 1975 | 6 |
331.85 | 1975.54 | 1975 | 7 |
330.01 | 1975.63 | 1975 | 8 |
328.51 | 1975.71 | 1975 | 9 |
328.41 | 1975.79 | 1975 | 10 |
329.25 | 1975.88 | 1975 | 11 |
330.97 | 1975.96 | 1975 | 12 |
✅ Идентификујте променљиву која се мења током времена у овом скупу података
Карактеристике података временских серија које треба узети у обзир
Када посматрате податке временских серија, можда ћете приметити да они имају одређене карактеристике које треба узети у обзир и ублажити како бисте боље разумели њихове обрасце. Ако податке временских серија сматрате потенцијалним „сигналом“ који желите да анализирате, ове карактеристике могу се сматрати „шумом“. Често ћете морати да смањите овај „шум“ коришћењем неких статистичких техника.
Ево неких концепата које треба да знате како бисте могли да радите са временским серијама:
🎓 Трендови
Трендови се дефинишу као мерљиви пораст или пад током времена. Прочитајте више. У контексту временских серија, ради се о томе како користити и, ако је потребно, уклонити трендове из ваших временских серија.
Сезоналност се дефинише као периодичне флуктуације, као што су празничне гужве које могу утицати на продају, на пример. Погледајте како различите врсте графикона приказују сезоналност у подацима.
🎓 Изузетне вредности
Изузетне вредности су далеко од стандардне варијансе података.
🎓 Дугорочни циклус
Независно од сезоналности, подаци могу показивати дугорочни циклус, као што је економски пад који траје дуже од годину дана.
🎓 Константна варијанса
Током времена, неки подаци показују константне флуктуације, као што је потрошња енергије током дана и ноћи.
🎓 Нагле промене
Подаци могу показивати наглу промену која захтева даљу анализу. Нагло затварање предузећа због COVID-а, на пример, изазвало је промене у подацима.
✅ Ево пример графикона временских серија који приказује дневну потрошњу валуте у игри током неколико година. Можете ли идентификовати неку од горе наведених карактеристика у овим подацима?
Вежба - почетак рада са подацима о потрошњи енергије
Хајде да почнемо са креирањем модела временских серија за предвиђање будуће потрошње енергије на основу претходне потрошње.
Подаци у овом примеру преузети су са такмичења за предвиђање GEFCom2014. Они садрже три године података о сатној потрошњи електричне енергије и температури између 2012. и 2014. године.
Тао Хонг, Пјер Пинсон, Шу Фан, Хамидреза Зареипур, Алберто Троколи и Роб Џ. Хајндман, „Прогностичко предвиђање енергије: Глобално такмичење за предвиђање енергије 2014 и даље“, International Journal of Forecasting, vol.32, no.3, pp 896-913, јул-септембар, 2016.
-
У фасцикли
working
ове лекције, отворите датотеку notebook.ipynb. Почните додавањем библиотека које ће вам помоћи да учитате и визуализујете податке:import os import matplotlib.pyplot as plt from common.utils import load_data %matplotlib inline
Имајте на уму да користите датотеке из укључене фасцикле
common
које подешавају ваше окружење и обрађују преузимање података. -
Затим, прегледајте податке као dataframe позивајући
load_data()
иhead()
:data_dir = './data' energy = load_data(data_dir)[['load']] energy.head()
Можете видети да постоје две колоне које представљају датум и потрошњу:
load 2012-01-01 00:00:00 2698.0 2012-01-01 01:00:00 2558.0 2012-01-01 02:00:00 2444.0 2012-01-01 03:00:00 2402.0 2012-01-01 04:00:00 2403.0 -
Сада, нацртајте графикон података позивајући
plot()
:energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) plt.xlabel('timestamp', fontsize=12) plt.ylabel('load', fontsize=12) plt.show()
-
Сада, нацртајте прву недељу јула 2014. године, тако што ћете је унети као улаз у
energy
у облику[од датума]: [до датума]
:energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) plt.xlabel('timestamp', fontsize=12) plt.ylabel('load', fontsize=12) plt.show()
Прелеп графикон! Погледајте ове графиконе и видите да ли можете утврдити неку од горе наведених карактеристика. Шта можемо закључити визуализацијом података?
У наредној лекцији, креираћете ARIMA модел за креирање предвиђања.
🚀Изазов
Направите листу свих индустрија и области истраживања које вам падну на памет, а које би имале користи од предвиђања временских серија. Можете ли смислити примену ових техника у уметности? У економетрији? Екологији? Малопродаји? Индустрији? Финансијама? Где још?
Квиз након предавања
Преглед и самостално учење
Иако их овде нећемо обрађивати, неуронске мреже се понекад користе за побољшање класичних метода предвиђања временских серија. Прочитајте више о томе у овом чланку
Задатак
Визуелизујте још неке временске серије
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква неспоразумевања или погрешна тумачења која могу произаћи из коришћења овог превода.