13 KiB
Bevezetés az idősoros előrejelzésbe
Vázlatrajz: Tomomi Imura
Ebben és a következő leckében megismerkedhetsz az idősoros előrejelzéssel, amely a gépi tanulás tudományának egy érdekes és értékes, bár kevésbé ismert területe. Az idősoros előrejelzés olyan, mint egy „varázsgömb”: egy változó, például ár múltbeli teljesítménye alapján megjósolhatod annak jövőbeli potenciális értékét.
🎥 Kattints a fenti képre az idősoros előrejelzésről szóló videóért
Előzetes kvíz
Ez egy hasznos és érdekes terület, amely valódi értéket képvisel az üzleti életben, mivel közvetlenül alkalmazható árképzési, készletgazdálkodási és ellátási lánc problémákra. Bár a mélytanulási technikák egyre inkább használatosak a jövőbeli teljesítmény jobb előrejelzésére, az idősoros előrejelzés továbbra is nagyrészt a klasszikus gépi tanulási technikákra támaszkodik.
A Penn State hasznos idősoros tananyaga itt található
Bevezetés
Tegyük fel, hogy egy sor okos parkolóórát üzemeltetsz, amelyek adatokat szolgáltatnak arról, hogy milyen gyakran és mennyi ideig használják őket az idő múlásával.
Mi lenne, ha meg tudnád jósolni a parkolóóra jövőbeli értékét a kereslet és kínálat törvényei alapján, a múltbeli teljesítményére alapozva?
Pontosan megjósolni, mikor kell cselekedni a cél elérése érdekében, egy olyan kihívás, amelyet az idősoros előrejelzés segítségével lehet megoldani. Bár nem örülnének az emberek, ha forgalmas időszakokban többet kellene fizetniük parkolóhelyért, ez biztos módja lenne a bevétel növelésének, például az utcák tisztítására.
Nézzük meg néhány idősoros algoritmus típusát, és kezdjünk el egy notebookot az adatok tisztítására és előkészítésére. Az elemzendő adatok a GEFCom2014 előrejelzési versenyből származnak. Ez 3 évnyi óránkénti villamosenergia-fogyasztási és hőmérsékleti adatokat tartalmaz 2012 és 2014 között. A villamosenergia-fogyasztás és a hőmérséklet történelmi mintái alapján megjósolhatod a villamosenergia-fogyasztás jövőbeli értékeit.
Ebben a példában megtanulod, hogyan lehet egy időlépést előre jelezni, kizárólag a történelmi fogyasztási adatok alapján. Mielőtt azonban elkezdenéd, hasznos megérteni, mi zajlik a háttérben.
Néhány definíció
Amikor az „idősor” kifejezéssel találkozol, fontos megérteni annak használatát különböző kontextusokban.
🎓 Idősor
A matematikában az „idősor egy időrendben indexelt (vagy listázott vagy grafikonon ábrázolt) adatpontok sorozata. Leggyakrabban az idősor egy sorozat, amelyet egymást követő, egyenlő időközönként vesznek fel.” Az idősor egyik példája a Dow Jones ipari átlag napi záróértéke. Az idősorok grafikonjainak és statisztikai modellezésének használata gyakran előfordul jelanalízisben, időjárás-előrejelzésben, földrengés-előrejelzésben és más olyan területeken, ahol események történnek, és adatpontokat lehet időben ábrázolni.
🎓 Idősoros elemzés
Az idősoros elemzés az előbb említett idősoros adatok elemzése. Az idősoros adatok különböző formákat ölthetnek, beleértve az „megszakított idősorokat”, amelyek mintákat észlelnek egy idősor fejlődésében egy megszakító esemény előtt és után. Az idősorhoz szükséges elemzés típusa az adatok természetétől függ. Az idősoros adatok maguk is lehetnek számok vagy karakterek sorozatai.
Az elvégzendő elemzés különféle módszereket használ, beleértve a frekvenciatartományt és az időtartományt, lineáris és nemlineáris módszereket, és még sok mást. Tudj meg többet az ilyen típusú adatok elemzésének számos módjáról.
🎓 Idősoros előrejelzés
Az idősoros előrejelzés egy modell használata a jövőbeli értékek megjóslására, a korábban gyűjtött adatok által mutatott minták alapján. Bár regressziós modellekkel is lehet idősoros adatokat vizsgálni, ahol az időindexek x változóként jelennek meg egy grafikonon, az ilyen adatokat leginkább speciális típusú modellekkel lehet elemezni.
Az idősoros adatok egy rendezett megfigyelések listája, szemben a lineáris regresszióval elemezhető adatokkal. A leggyakoribb modell az ARIMA, amely az „Autoregresszív Integrált Mozgó Átlag” rövidítése.
ARIMA modellek „kapcsolatot teremtenek egy sorozat jelenlegi értéke és a múltbeli értékek, valamint a múltbeli előrejelzési hibák között.” Ezek leginkább az időtartományban rendezett adatok elemzésére alkalmasak.
Az ARIMA modelleknek több típusa van, amelyekről itt tudhatsz meg többet, és amelyeket a következő leckében érinteni fogsz.
A következő leckében egy ARIMA modellt fogsz építeni Univariáns Idősorok használatával, amely egyetlen változóra összpontosít, amely idővel változtatja értékét. Az ilyen típusú adatok egyik példája ez az adatállomány, amely a Mauna Loa Obszervatóriumban mért havi CO2 koncentrációt rögzíti:
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 |
✅ Azonosítsd a változót, amely idővel változik ebben az adatállományban.
Az idősoros adatok jellemzői, amelyeket figyelembe kell venni
Amikor idősoros adatokat vizsgálsz, észreveheted, hogy bizonyos jellemzőkkel rendelkeznek, amelyeket figyelembe kell venni és csökkenteni kell, hogy jobban megértsd a mintáikat. Ha az idősoros adatokat potenciálisan egy „jelként” tekinted, amelyet elemezni szeretnél, ezek a jellemzők „zajként” is felfoghatók. Gyakran szükséges csökkenteni ezt a „zajt” bizonyos statisztikai technikák alkalmazásával.
Íme néhány fogalom, amelyet ismerned kell ahhoz, hogy idősoros adatokkal dolgozhass:
🎓 Trendek
A trendek idővel mérhető növekedéseket és csökkenéseket jelentenek. Olvass többet. Az idősorok kontextusában arról van szó, hogyan lehet használni, és ha szükséges, eltávolítani a trendeket az idősorokból.
A szezonális hatások olyan időszakos ingadozások, mint például az ünnepi rohamok, amelyek befolyásolhatják az értékesítést. Nézd meg, hogyan jelennek meg a szezonális hatások különböző típusú grafikonokon.
🎓 Szélsőséges értékek
A szélsőséges értékek messze esnek az adatok szokásos szórásától.
🎓 Hosszú távú ciklus
A szezonális hatásoktól függetlenül az adatok hosszú távú ciklust is mutathatnak, például egy gazdasági visszaesést, amely egy évnél tovább tart.
🎓 Állandó szórás
Idővel néhány adat állandó ingadozásokat mutat, például napi és éjszakai energiafogyasztás.
🎓 Hirtelen változások
Az adatok hirtelen változást mutathatnak, amely további elemzést igényelhet. Például a COVID miatt hirtelen bezáró üzletek változásokat okoztak az adatokban.
✅ Itt van egy példa idősoros grafikon, amely néhány év alatt napi játékon belüli pénzköltést mutat. Felismered az adatokban a fent felsorolt jellemzők bármelyikét?
Gyakorlat - kezdjük az energiafogyasztási adatokkal
Kezdjünk el létrehozni egy idősoros modellt, amely a múltbeli fogyasztás alapján megjósolja a jövőbeli energiafogyasztást.
Az adatok ebben a példában a GEFCom2014 előrejelzési versenyből származnak. Ez 3 évnyi óránkénti villamosenergia-fogyasztási és hőmérsékleti adatokat tartalmaz 2012 és 2014 között.
Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli és Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.
-
Nyisd meg a
working
mappában található notebook.ipynb fájlt. Kezdd azzal, hogy hozzáadod azokat a könyvtárakat, amelyek segítenek az adatok betöltésében és vizualizálásában:import os import matplotlib.pyplot as plt from common.utils import load_data %matplotlib inline
Figyelj arra, hogy a
common
mappában található fájlokat használod, amelyek beállítják a környezetet és kezelik az adatok letöltését. -
Ezután vizsgáld meg az adatokat egy dataframe-ként, a
load_data()
éshead()
hívásával:data_dir = './data' energy = load_data(data_dir)[['load']] energy.head()
Láthatod, hogy két oszlop van, amelyek az időpontot és a fogyasztást képviselik:
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 -
Most ábrázold az adatokat a
plot()
hívásával:energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) plt.xlabel('timestamp', fontsize=12) plt.ylabel('load', fontsize=12) plt.show()
-
Ezután ábrázold 2014 júliusának első hetét, az
energy
bemenetként való megadásával[kezdő dátum]:[záró dátum]
mintában: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()
Gyönyörű grafikon! Nézd meg ezeket a grafikonokat, és próbáld meg meghatározni a fent felsorolt jellemzők bármelyikét. Mit tudunk megállapítani az adatok vizualizálásával?
A következő leckében egy ARIMA modellt fogsz létrehozni, hogy előrejelzéseket készíts.
🚀Kihívás
Készíts listát az összes olyan iparágról és kutatási területről, amely szerinted hasznot húzhat az idősoros előrejelzésből. Eszedbe jut olyan alkalmazás ezekre a technikákra a művészetekben? Az ökonometriában? Az ökológiában? A kiskereskedelemben? Az iparban? A pénzügyekben? Hol máshol?
Utólagos kvíz
Áttekintés és önálló tanulás
Bár itt nem foglalkozunk velük, a neurális hálózatokat néha használják az idősoros előrejelzés klasszikus módszereinek kiegészítésére. Olvass róluk többet ebben a cikkben
Feladat
Vizualizálj további idősorokat
Felelősség kizárása:
Ez a dokumentum az Co-op Translator AI fordítási szolgáltatás segítségével került lefordításra. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.