Nagyméretű Adathalmazok Kezelése Idősorok Elemzése Márta Zsolt BME-SZIT (Hallgató) 2011.04.01 Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 1 / 34
Tartalom 1 Bevezetés 2 Hasonlósági mértékek 3 Indexelés Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 2 / 34
Itt tartunk 1 Bevezetés 2 Hasonlósági mértékek 3 Indexelés Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 3 / 34
Bevezetés Idősor: adatok idő szerint rendezve Általában azonos mintavételi periódussal, de nem feltétlenül! A világ adatainak jelentős része idősorként áll elő Hagyományos adatbányászati módszerek nem hatékonyak Számít a sorrend! Rendkívül nagyméretű adathalmazok Adatok összefüggenek (függnek az időtől) Zaj Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 4 / 34
Feladatok Indexelés (lekérdezés hasonlóság alapján) Klaszterezés Osztályozás Előrejelzés Összegzés (tömörítés) Anomália-keresés Szegmentálás Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 5 / 34
Itt tartunk 1 Bevezetés 2 Hasonlósági mértékek 3 Indexelés Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 6 / 34
Távolság meghatározása Két idősort akarunk összehasonĺıtani Két egyforma idősor ritkán akad, ezért egyezőség helyett hasonlóságot használunk A legtöbb algoritmus ezen alapszik! Egyszerű módszer: a két (egyforma hosszú) idősort n-dimenziós vektornak tekintjük A távolság az idősorok ( x és y) között az L p -normával kapható meg: n 1 L p ( x, y) = ( x i y i p ) 1 p i=0 Nagyon különbözik az emberi hasonlóságtól, érzékeny Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 7 / 34
Az L p -norma hibái A konstans értékben eltérő idősorokat lehet normalizálni: ahol µ az átlag, σ a szórás. De: x i = x i µ( x) σ( x) Látszólag hasonló, az L p -norma mégis nagy különbséget ad Megoldás: időbeli elcsúszások figyelembevétele Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 8 / 34
Dynamic Time Warping Először beszédfelismerésben alkalmazták Dinamikus programozás: x(x0, x 1,..., x n 1 ) és y(y 0, y 1,..., y m 1 ) a két idősor Legyen DTW egy n m-es mátrix, ekkor DTW [n, m] a távolság DTW [i, j] = d(x i, y j ) + min(dtw [i 1, j], DTW [i, j 1], DTW [i 1, j 1]) Θ(nm) idő alatt számolható Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 9 / 34
Dynamic Time Warping Csúszóablakkal(ω) gyorsítható Θ(nω)-ra Minden elemet felhasznál (van amit többször), érzékeny a zajra Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 10 / 34
Longest Common Subsequence Leghosszabb közös részsorozat Nem kell minden elemet figyelembe venni (zaj), csak a sorrend számít {1, 2, 3, 4, 5, 1, 7} és {2, 5, 4, 5, 3, 1, 8} LCSS-e a {2, 4, 5, 1} Dinamikus programozás: Legyen L[i, j] egy n m-es mátrix, ekkor LCSS( x, y) L[n, m] L[i, j] = { 1 + L[i 1, j 1], ha xi = y j max(l[i 1, j], L[i, j 1]) egyébként Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 11 / 34
Longest Common Subsequence kiterjesztése Az elemek pontos egyezése túl szigorú Θ(nm) is még túl sok idő csúszóablak 1 + L[i 1, j 1], ha x i y j < ɛ L[i, j] = és i j < ω max(l[i 1, j], L[i, j 1]) egyébként ahol ɛ az elemek max. távolsága, és ω a csúszóablak Nem kell minden elemét kiszámolni a mátrixnak, cserébe fennáll a hibalehetőség O((n + m)ω) már jobb, főleg kis ω-ra Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 12 / 34
Longest Common Subsequence hasonlóság Ezek alapján hasonlóság mértéke meghatározható: S(ɛ, ω, x, y) = LCSS ɛ,ω( x, y) min(n, m) Mi van, ha a két idősor hasonló, de egy konstans értékben különbözik? Legyen F az f c ( x) = (x 0 + c,..., x n 1 + c) transzformációk (eltolások) halmaza Ekkor: A távolság pedig: S 2 (ɛ, ω, x, y) = max S(ɛ, ω, x, y) f c F D(ɛ, ω, x, y) = 1 S 2 (ɛ, ω, x, y) Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 13 / 34
Longest Common Subsequence hatékony számítása S számítási módját láttuk; ha a csúszóablak nagy, lehet javítani mintavételezéssel S 2 számítása nem triviális: Végtelen számú eltolás létezik, de véges számú különböző LCSS-eket adnak Vegyük a két-dimenziós síkot, ahol X -tengelyen xi elemeit vesszük fel, az Y -tengelyen pedig y i -ket Vegyünk fel ((x i, y j ɛ), ((x i, y j + ɛ)) pontokkal határolt szakaszokat, ahol i j < ω Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 14 / 34
Longest Common Subsequence hatékony számítása/2. O(ω(n + m)) ilyen szakasz van Ekkor az eltolások 1-meredekségű egyenesek x f c ( x) az eltolással kapott új idősor x i párosítható egy y j -vel az f (x) = x + c egyenes metszi a ((x i, y j ɛ), ((x i, y j + ɛ)) szakaszt Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 15 / 34
Longest Common Subsequence hatékony számítása/3. Ha két vonal különböző szakaszokat metsz, lehet más a LCSS De csak végpontoknál történhet ilyen Mivel O(ω(n + m)) végpont van, ezért minden ilyen lehetséges metszeten végigmenve az optimum kiszámolható O(ω 2 (n + m) 2 ) időben Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 16 / 34
Longest Common Subsequence hatékony számítása/4. A négyzetes futási idő túl sok, elég lehet csak közeĺıteni Vegyük a lehetséges különböző LCSS-t adó eltolásokat, és rendezzük c, az eltolás mértéke alapján. Az így kapott konstansok: c = (c 1,..., c 2ωn ) (Tfh. n > m). Legyen L fc azon szakaszok halmaza, amit metsz az f c transzformáció Ekkor L fci L fcj i j, mivel f ci és f ci+1 között maximum egy különbség lehet (szakaszvégpont) Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 17 / 34
Longest Common Subsequence hatékony számítása/5. Ha tekintjük az f cib eltolásokat (i = 1,..., 2ωn b ), ezek maximum b találatban különböznek az optimumtól Tehát az optimális S 2 -t közeĺıthetjük S 2 (ɛ, ω, x, y) S 2 (ɛ, ω, x, y) < β mértékben (0 < β < 1) Rendezés nem szükséges, a transzformációk O( ωn b ωn) időben megtalálhatók kvantilis-számítással Tehát az algoritmus O( nω2 β ) időben fut, ha b = βn Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 18 / 34
Általánosságban A távolság tulajdonképpen azon transzformációk száma, melyekkel az egyik idősor a másikba vihető A távolságfüggvény metrika, ha teljesül: Pozitivitás: δ(x, y) 0, δ(x, y) = 0 x = y Szimmetria: δ(x, y) = δ(y, x) Háromszög-egyenlőtlenség: δ(x, y) + δ(y, z) δ(x, z) A DTW, LCSS nem metrika! Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 19 / 34
Általánosságban/2. A zajra robusztus távolságfüggvények tipikusan a háromszög-egyenlőtlenséget sértik meg, mert csak a leghasonlóbb részeket veszik figyelembe Általánosságban elvárjuk, hogy a távolságfüggvényeink kezeljék az alábbiakat: Eltérő (mintavételezési) sebesség Kiugró értékek, nem-fehér zaj Eltérő hosszak Hatékonyság Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 20 / 34
Itt tartunk 1 Bevezetés 2 Hasonlósági mértékek 3 Indexelés Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 21 / 34
Indexelés bevezető Adott mintához keressük meg a leghasonlóbbat! Alapesetben végigmegyünk az adatbázison, O(nm) legalább, ami nem elfogadható Léteznek erre algoritmusok, de az idősorok esetében van még pár nehézség: Az adatok értékkészlete nem feltétlenül véges vagy diszkrét A mintavételezés sebessége nem feltétlenül konstans A zaj jelenléte rugalmas hasonlósági függvényt tesz szükségessé Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 22 / 34
Indexelési probléma A probléma: adott q minta, X idősorok egy halmaza, δ távolság-függvény, és egy tűréshatár ɛ; keressük a q-hoz hasonló sorokat: R = { x X δ( q, x) ɛ} X lehet egy nagyon hosszú idősor is, ekkor a probléma X részsorjaira érvényes Ha S egy indexelési módszer által megtalált halmaz, akkor S R a téves találatok, míg R S a téves elutasítások halmaza Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 23 / 34
Indexelés elvárások Egy indexelési módszer elvárt tulajdonságai: Legyen gyorsabb, mint a szekvenciális scan Kevés tárhelyet igényeljen Változó méretű lekérdezésekre működjön Ne kelljen újraépíteni az indexet beszúráskor, és törléskor Legyen helyes, azaz ne legyenek téves elutasítások; lehetőleg minél kevesebb téves találat legyen Az index építése ne legyen túl lassú Legyen kompatibilis több távolságfüggvénnyel Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 24 / 34
Dimenziócsökkentés q n-dimenziós vektor legközelebbi szomszédjait keressük Térindex algoritmusok léteznek ennek hatékony megoldására (R-fa, kd-fa) De lényegesen romlik a hatékonyságuk nagy n-re (Dimenzió-átok), valamint csak metrikákkal működnek! Próbáljuk meg csökkenteni a dimenziót, vegyünk egy k-dimenziós (k n) lenyomatát q-nak: q, és azt indexeljük Akkor tudjuk garantálni a helyességet, ha biztosítjuk, hogy a lenyomattérbeli távolságfüggvényre (δ k ): A szekvenciális elérést is segíti δ k ( x, ỹ) δ( x, y) Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 25 / 34
Lenyomatképzés: spektrum A legtöbb létező idősor reprezentálható a legerősebb frekvenciakomponenseivel Vegyük hát az első k amplitúdó-együtthatót lenyomatnak Ekkor az Euklideszi-távolság a frekvenciatérben alulbecsüli a valós távolságot Ha részsorra keresünk, az adatbázis minden pozíciójából vegyünk lenyomatot (ω-méretűt), és tároljuk pl. R-fában. Ha q > ω, akkor bontsuk fel a lekérdezést, és az allekérdezések metszete lesz a megoldás Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 26 / 34
Lenyomatképzés: spektrum/2. A hátránya, hogy elsimítja a szélsőségeket DFT helyett DWT is használható, jobbnak bizonyult kísérletekben Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 27 / 34
Lenyomatképzés: PCA Piecewise Constant Approximation: bontsuk k részre az idősort, és ezen szegmensek átlagos értékei legyenek a koordinátái a k-dimenziós vektorunknak Lehet adaptívan is (nem azonos hosszú szegmensek) Nagyon egyszerű, és gyors (pl. a DWT-hez képest 10-szer gyorsabb) Akármilyen L p -normával működik Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 28 / 34
Lenyomatképzés: Landmark Nem konkrét módszer, inkább család Érdemes csak a meghatározó formákat kinyerni Például n-edik derivált zérushelyek, meghatározó fordulópontok Robusztussá tehető eltolásra, egyenletes, sőt nem egyenletes nyújtásra is Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 29 / 34
Landmark példa Először is vegyünk az idősor fontos fordulópontjait: x m fontos minimuma az x i,..., x j pontoknak, ha: i k j, xm x k x i /x m R, x j /x m R ahol R a tömörítési arány. Hasonlóan maximumokra Lineáris időben, gyorsan számolható Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 30 / 34
Landmark példa/2. A tömörítés után tudjuk a lenyomatot elkészíteni: vegyük a fontos fordulópontok közötti szakaszokat (lábak) A lábakról tároljuk a két szélső értéket, indexet, valamint a hosszt és a két szélső érték arányát Ezt megcsináljuk az idősorra, egy range tree-ben tároljuk a lábakat hosszuk és meredekségük alapján Az input sor ( q) legmeredekebb lába alapján keresünk a struktúrában A jelölteket ezután összehasonĺıtjuk (pl. LCSS) O(k + logl), ahol k a megtalált-, l az összes lábak száma Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 31 / 34
Landmark példa/3. Így kihagyhatunk hasonló találatokat Vezessük be a kibővített lábak fogalmát: x i és x j x 1,..., x n bővített növekvő láb, ha ai lokális minimum, a j lokális maximum m [i, j], ai < a m < a j Tehát amik lábak lennének nagyobb tömörítési arány esetén Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 32 / 34
Landmark példa/4. Indexeljük a kibővített lábakat Így több adatot kell tárolni, de cserébe pontosabban működik az algoritmus Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 33 / 34
Köszönöm a figyelmet! Márta Zsolt (BME-SZIT (Hallgató)) Idősorok Elemzése 2011.04.01 34 / 34