1
6. LECKE: REGRESSZIÓ -- Elıadás 6.1. A regresszió feladata és módszerei [C4] A módszer lényege, hogy arányskálán mért magyarázó változók (x1,…,xk) segítségével közelítjük a számunkra érdekes, ugyancsak arányskálán mért (függı) változót (y). A leggyakrabban alkalmazott eljárás a lineáris regresszió, melynek során a magyarázó változók lineáris kombinációjával közelítjük a függı változót: y ~ a1 x1 + a 2 x 2 + ... + a k x k (1) Az eljárás elnevezése onnan származik, hogy megfigyelhetı volt a fiúk magasságának lineáris függése az apák testmagasságától, de ezen egyenes meredeksége kisebb 1-nél, azaz az átlag feletti magasságú apák fiai is magasabbak lesznek az átlagnál, de nem annyival, mint az apjuk. Ez a jelenséget nemcsak a történeti érdekesség miatt említettük meg, hanem azért is, mert sok adatbázisban megfigyelhetı (hivatkozás: regression towards the mean). A paramétervektort leggyakrabban a legkisebb négyzetek módszerével becsüljük. Ez az alábbi négyzetösszeg minimalizálását jelenti (feltételezve, hogy n megfigyelésünk van) n
∑[ y
i
− (a1 xi1 + a 2 xi 2 + ... + a k xik )] 2 . A feladat könnyen megoldható, hiszen a vizsgált
i =1
kvadratikus függvénynek pontosan egy minimumhelye van, mely deriválással azonnal meghatározható. Az eredményt egyszerően felírhatjuk aˆ = ( X ' X ) −1 X ' y alakban (X az nxk dimenziós megfigyelés-mátrixot jelöli). Ha konstans tagot is szükségesnek gondolunk, akkor ezt például xi1=1 választással beépíthetjük a modellbe. A magyarázó változók transzformációja után akár polinommal vagy trigonometrikus függvénnyel való közelítés is belefér a modellbe. A becslés tulajdonságai nagyban függnek a megfigyelésvektortól. A klasszikus esetben, amikor az
ε i = y i − (a1 xi1 + a 2 xi 2 + ... + a k xik ) hiba (i=1,…,n) független, azonos, normális eloszlású, akkor a becslés egyúttal maximum likelihood becslés is. Ekkor mód van a becslésekhez úgynevezett konfidencia intervallumokat rendelni, amelyek adott, nagy valószínőséggel tartalmazzák a becsült paraméter tényleges értékét. Az általános esetben is torzítatlan és a kovariancia mátrixa is megadható. Az egyes együtthatók szignifikanciáját a statisztikából jól ismert t-próbastatisztikával vizsgálhatjuk. Ugyanakkor az adatbányászatban tipikus nagy adathalmazok esetén ez nem mindig a legjobb mérıszám, mert véletlenszerően is kaphatunk szignifikánsnak tőnı eredményt. Ezért itt is célszerő a más módszereknél már látott cross-validation technika
2
alkalmazása, amely révén tesztelhetı a tanuló adatbázis alapján meghatározott eredmények alkalmazhatósága a tıle diszjunkt teszt-adathalmazon is. A legfontosabb kérdés az adatbányászatban, ahol általában rengeteg magyarázó változóból dolgozhatunk, hogy minek a hatása az igazán lényeges. Hiszen, ha túl sok változót és így túl sok paramétert építünk be a modellbe, akkor a becslések nem lesznek stabilak és az esetlegességük miatt a modell sem lesz jól használható. Ezt is célszerő az elızıekben már említett cross-validation technikával ellenırizni (például több, különbözı véletlen tanuló adatbázist választva). Másik probléma az úgynevezett kollinearitás. Ez azt jelenti, hogy az X megfigyelés-mátrix elfajult vagy legalábbis közel van ahhoz, hogy elfajult legyen. Ebben az esetben az úgynevezett ridge regresszió használható, ami azonban nem futtatható automatikusan, mert egy simasági paraméter határozza meg, hogy milyen mértékben is engedjük meg az eltérést a legkisebb négyzetes becsléstıl, pontosabban, mennyire változtathatjuk meg az X’X mátrixot, hogy a determinánsa távol kerüljön a 0-tól. Az adatelıkészítés is lényeges szerepet játszik ennél a módszernél, ezért ajánlott az Oracle automatikus adatelıkészítı moduljának alkalmazása a módszer futtatása elıtt. Az adatbányászatban tipikus eset, hogy nem folytonos skálán mért változókkal kell dolgozni, hanem diszkrét a függı változó. Ez nem jelent döntı különbséget, hiszen szükség esetén kerekítést alkalmazhatunk. Lényegesebb eltérést jelent viszont, ha a változóink között nominális skálán mértek is vannak. Ekkor nem értelmes a lineáris függvény (1) képlet szerinti felírása, hanem az ilyen magyarázó változók minden egyes lehetséges értékéhez úgynevezett „dummy” változót kell hozzárendelni, mely az 1 értéket pontosan akkor veszi fel, amikor a változónk az adott kategóriába esik, különben pedig 0. Könnyen látható, hogy r különbözı értékkel rendelkezı változóhoz elegendı r-1 ilyen változót hozzárendelni, hiszen az utolsó kategória pontosan akkor lép fel, amikor az elızıek egyike sem, tehát az ehhez tartozó változó megkapható úgy, hogy az összes többi összegét kivonjuk 1-bıl. Ezekkel már a fentiek szerint felírható a regresszió. Lényegesebb változás, amikor a függı változó nominális. Ekkor a célunk annak elırejelzése, hogy melyik értéket is veszi fel a változó. Ehhez is elkészíthetjük ha kell, az egyes kategóriákhoz tartozó dummy változókat, így becsülhetjük az egyes értékek valószínőségét. Ezt azonban nem célszerő az eddig látott lineáris regresszióval elvégezni, hiszen ott az esetek nagy részében a valószínőségre értelmetlen (nem a [0,1] intervallumba esı) eredményeket kapnánk. Ehelyett nemlineáris kapcsolatot tételezünk fel a magyarázó változók és a keresett valószínőség között, például az alábbiak szerint (ez az úgynevezett logisztikus regresszió): P(y = 1|x) =
1 1 + e − ax
Itt, átrendezés és logaritmálás után a fentiekhez hasonlóan megkaphatóak az a együtthatóvektor becsült értékei. Ha minden egyes lehetséges értékhez elkészítjük a fenti becslést, akkor a legnagyobb támogatottságút tekinthetjük az elırejelzésnek.
3
6.2. Diagnosztika Az ellenırzés szemléletessé tételére alkalmas a reziduális plot, amely a teszt-adatbázis tényleges értékeit hasonlítja össze ugyanezen értékek és az elırejelzett értékek különbségével (ezek az úgynevezett reziduálisok). A 0-hoz közeli értékek jó illeszkedést mutatnak, de ha szisztematikus mintázat látszik, az valamely, a modellben nem szereplı hatás jelenlétére utal. Különbözı statisztikai mérıszámokat is érdemes kiszámolni, amik az illeszkedés pontosságát jelzik (pl. átlagos négyzetes hiba). Ezek közül az ODM az átlagos abszolút hibát, a becsült értékek és a tényleges értékek átlagát, valamint az átlagos négyzetes hiba négyzetgyökét (root mean squared error) adja táblázatos formában. A legegyszerőbb grafikus értékelés a prediktív konfidencia növekménye a naív modellhez képest (amely egyszerően az átlagot adja becslésként). Az általánosított lineáris modell (GLM) további függvényekkel való illesztést is meg tud valósítani – ez új elem az ODM 11.1 verzióban. Itt az úgynevezett link függvény segítségével a célváltozót transzformáljuk úgy, hogy a transzformált változóra már mőködjön a lineáris közelítés – szükség esetén a szórást is transzformálva az elırejelzett válasz függvényében, hogy elérhetı legyen a homoszkedaszticitás (azonos szórásúság)
-- Gyakorlat 6.3. Regresszió megvalósítása az ODM-ben támaszvektorokkal (SVM) [C4] A szokásos modell-építés menüben a regressziós függvények közül választhatjuk ki a support vector machine menüpontot. Itt láthatjuk a rövid leírását, miszerint a regresszió olyan eljárás, amely folytonos célváltozó elırejelzésére használható, ennyiben tehát különbözik a klasszifikációtól. A mintapéldánál a MINING_DATA_BUILD_V adattáblát használjuk. Ennek egyértelmő azonosítója a CUST_ID, amit a Single Key sorban választhatunk ki. Ezután kattintsunk a Next gombra. A cél most az ügyfelek korának elırejelzése. Ezért a célváltozónk az AGE (jelöljük ki Targetnek). A többi változót szeretnénk használni a modellben, ezért azok kijelölését ne változtassuk meg. Ezután kattintsunk ismét a Next gombra. Végül ismét nevet kell adnunk a munkánknak (pl. MINING_DATA_BUILD_REG_SVM1). Ha gondoljuk, akkor megjegyzést is főzhetünk a futáshoz a késıbbi azonosítás kedvéért a Comment ablakba. Az utolsó ablakban vagy elindítjuk a beállított adatbányászati algoritmust az alapbeállítás, vagy változtatunk a paraméterértékeken az “Advanced settings” fülre kattintva, ahol lényegében ismét a klasszifikációnál már látott lehetıségekkel találkozunk.
4
Elıször a mintavételezést állíthatjuk be. Az alapbeállítás ezt nem alkalmazza, mert az Oracle adatbányász algoritmusai a program szerzıi szerint bármilyen mérető adatbázis esetén elfogadható sebességgel mőködnek. De lehetnek hardver (vagy idı) korlátai a teljes adatbázissal való munkának/kísérletezésnek, ezért gyakran érdemes a véletlen mintavételt alkalmazni. Itt elıször engedélyeznünk kell ezt a lépést, beállításaink csak ezután válnak valóban végrehajtandóvá. A teljesen véletlen mintavétel mellett a rétegzett modellt (stratified) is választhatjuk, ez különösen a ritka célértéknél (pl. csalások felderítése) lehet lényeges. Ekkor ugyanis az arányos mintavétel igen kicsi esetszámot biztosítana, ami nem teszi lehetıvé a hatékony modellépítést. Ekkor a mintát úgy építi fel a program, hogy lehetıleg azonos legyen a célérték és a többi lehetséges érték gyakorisága. Van lehetıségünk a kiugró értékek (outliers) kezelésének beállítására is. Alapértelmezésben az adott változó átlagához képest háromszoros szóráson kívül esı értékeket helyettesíti ezzel a határral. Ennek lehet haszna akkor, amikor félünk, hogy ezek valójában hibás adatok, amelyek jelentısen torzíthatják az eredményeinket, ha eredeti értékükkel szerepelnek. Ugyanakkor a fordított eset is elképzelhetı, azaz, hogy ezek az értékek mégiscsak pontosak és fontos információt hordoznak éppen szélsıségességükkel. Tehát ahogy azt már korábban is írtuk, nagyon fontos az adatok elızetes vizsgálata mielıtt az adatbányászat érdemi lépéseihez nekilátnánk. A következı kérdés a hiányzó értékek kezelése. Ez önmagában is egy fontos kérdés, szakkönyvek foglalkoznak a témával. Itt értelemszerően nincs mód a részletekbe menni. Mindenesetre az óvatosság itt is hasznos. A program alapértelmezésként a folytonos változók hiányzó értékeit az átlagukkal, míg a kategorikus változókét a móduszukkal helyettesíti. Ez logikus lehet, de problémát okozhat akkor, ha a hiányzó értékek nem teljesen véletlenszerőek, hanem összefüggést mutatnak a számunkra fontos célváltozóval. Ezzel a helyettesítéssel az összefüggést teljesen elveszíthetjük. Ezért óvatosabb lehet a hiányzó értékeket már elızetesen külön kategóriaként definiálni és így itt a modell építésnél már nem marad teendı. Ezután eldönthetjük, hogy vajon normalizáljuk-e a folytonos skálán mért változókat. Ez a legtöbb esetben célszerő, mert különben a nagy ingadozást mutató változók túlságosan dominánssá válhatnak a modellben. Ugyanakkor ezt a kérdést sem szabad mechanikusan eldönteni, mert elképzelhetı, hogy indokolt az egyes változók nagyobb szerepe. Tehát itt is érdemes lehet esetleg elızetesen, az adattranszformáció során változónkénti egyedi normálás végrehajtása. Itt a normalizálást vagy a minimum-maximum skálára (azaz gyakorlatilag a (0,1) intervallumra való transzformációval vagy a valószínőségszámításban szokásosabb standardizálással valósíthatjuk meg. Ezek után az adatok tanuló- és tesztadatbázisra történı szétosztását állíthatjuk be. Az alapértelmezés 60-40%, de sokszor inkább a 70-30%-ot szokták preferálni. A véletlenítés is alapértelmezett, ettıl csak akkor érdemes eltérni, ha különbözı módszereket szeretnénk összehasonlítani, mert akkor mindenképpen célszerő fix mintákkal dolgozni az összehasonlíthatóság érdekében. Az advanced settings menüpont további beállításai a modell paramétereire vonatkoznak. Lehet változtatni a magfüggvény értékét (alapértelmezés szerint a program választja ki, de le lehet rögzíteni a két lehetıség – lineáris, Gauss – bármelyikét).
5
A túlillesztést is paraméter kontrollálja. A tesztelésnél alkalmazott függvényeket és beállításaikat is kiválaszthatjuk. Ezekre részletesen kitérünk az eredmények bemutatásánál. A futtatásnál lehetıség van az egyes lépések egymás után, kézzel történı indítására is. Ez különösen akkor lehet hasznos, ha menet közben szeretnénk változtatni a paraméterek beállításán, de a megelızı lépések változatlanok maradnak. A modell egyetlen, korábban nem látott paramétere az epszilon. Ez azt határozza meg, hogy mekkora hibát fogadjon még el a modell. Nem szükséges megadni, a program automatikusan ad rá becslést.
6.4. Tesztelés A reziduális ábra mutatja az illesztés minıségét
6.1. ábra. Reziduális plot az életkor SVM regresszióval történı modellezésénél
A szisztematikus mintázatok mindenképpen további vizsgálatot igényelnek. Az is jól látszik, hogy bár a megfigyelések nagy részénél még elfogadható (10 évnél kisebb) a hiba, van jónéhány eset, amikor 20-30 év eltérés adódik. Ezeket a kiugró értékeket is érdemes – akár
6
egyesével – megvizsgálni és szükség esetén más eljárással modellezni ıket. Különösen sok ilyen pont található a 40 év feletti korokban, ezért feltehetıen itt szükséges másfajta modellezés. Az elırejelzés pontosságát mutatja az alábbi ábra.
6.2. ábra. Az elırejelzés megbízhatósága
A teszteredmények között megtaláljuk a számított statisztika értékeket: az átlagos abszolút hiba 0.06, a gyök-átlagos négyzetes eltérés 0.09. A tényleges és az elırejelzett értékek átlaga közötti eltérés kevesebb, mint 0.01. Ezek igen kicsi értékeknek tőnnek, de ne felejtsük el, hogy a változóinkra min-max standardizálást alkalmaztunk, azaz minden érték automatikusan 0 és 1 közötti. Nézzük meg, mennyiben változnak az eredmények abban az esetben, ha nem standardizálunk.
7
6.3. ábra. Reziduális plot az életkor SVM regresszióval történı modellezésénél
Látható, hogy nem történt lényeges változás. Ha viszont a statisztikákat is megnézzük, az átlagos abszolút hiba 4.27, a gyök-átlagos négyzetes eltérés 6.6. A tényleges és az elırejelzett értékek átlaga közötti eltérés kevesebb, mint 0.36. Ezek a reális értékek, tehát vigyázni kell a normalizált értékekre vonatkozó statisztikák interpretálásánál.
8
7. LECKE: ÁLTALÁNOSÍTOTT LINEÁRIS MODELL (GLM) -- Elıadás 7.1. Regresszió II. [C12] lásd az 6.lecke: Regresszió
-- Gyakorlat 7.2. GLM (lineáris regresszió) a regresszióra [T-nincs] A lineáris regresszió is a regresszió menüpontban érhetı el. Ez a gyakran használt statisztikai módszer különbözı mérıszámok, így konfidencia intervallumok számítását is lehetıvé teszi, melyek azonban érzékenyek a célváltozó eloszlására. Ha ez jelentısen eltér a normálistól, és a mintaelemszám sem túl nagy, akkor ezek nem lesznek pontosak. Nézzük részletesen, a korábban már bemutatottakon kívül milyen beállítási lehetıségeink vannak. A már említett konfidencia intervallum megbízhatóságát változtathatjuk (a szokásos 95% az alapbeállítás), megengedhetjük a ridge regresszió alkalmazását és kiszámíttathatjuk az ezen módszer által elıidézett szórás-növekedési faktort. Az eredmények közül elıször is a statisztikai táblázatokat érdemes megvizsgálni (.táblázat). Az F statisztika értékéhez tartozó valószínőség (model F value probability) azt adja meg, hogy pusztán véletlenszerően mekkora eséllyel kapnánk ekkora vagy még nagyobb statisztika értéket. Ez most azt mutatja, hogy nem lehet véletlen az eredmény, a modell valós kapcsolatokat tárt fel. A modell magyarázó ereje (R-Square) 0.74, ami legalábbis elfogadható. A paraméterek száma 75, ami kicsit soknak tőnik. Minden bizonnyal lehetséges néhány nem szignifikáns paraméter elhagyása.
9
7.1. táblázat. A GLM modell statisztikai értékelése
A következı táblázat az egyes változók együtthatóit és a hozzá tartozó statisztika értékeket adja meg, ebbıl ad kivonatot a táblázat.
10
7.2. táblázat. A GLM modell statisztikai értékelése
Itt az látható, hogy van néhány erısen szignifikáns változó (természetesen, ahogy ezt már a bevezetıben írtuk, a nominális magyarázó változókat dichotomizálni kellett, ezért az egyes értékekhez külön változó tartozik), ilyen például az ismeretlen foglalkozás (Occupation =?), melyhez tartozó statisztika értéke 5.65. Ezt az eljárást a szakirodalom inkább t-próbaként szokta hivatkozni. Még lényegesebbnek tőnik a lakóhelyen töltött évek száma (YRS_Residence), hiszen itt 10-nél is nagyobb a statisztika értéke. Látható tehát, hogy nem az együttható abszolút értéke a lényeges, hiszen ez önmagában erısen skálafüggı, hanem a standard hibával osztva kapott statisztika érték. Azokat az együtthatókat, ahol az utolsó oszlopban 0.05-nél nagyobb valószínőség szerepel, célszerő kihagyni a modellbıl. Ezután ezen az oldalon már csak 4 együttható maradna. A program által elkészített következı táblázat a modell építésnél használt egyes megfigyelésekre kapott becsléseket és a hozzájuk tartozó becsült hibákat tartalmazza.
11
7.3. táblázat. A GLM modell által becsült értékek és hibáik
Az egyes megfigyelésekhez tartozó elırejelzett értékek (predicted values) mellett a „hat” az úgynevezett „hat matrix” diagonális eleme, aminek a standardizált (pontosabban studentizált) reziduálisok számításánál van szerepe. Ha ezek szignifikánsan eltérnek a t-eloszlásnál várt értékektıl, akkor az adott megfigyelést kiugró értéknek tekinthetjük. A globális tesztstatisztikák ugyanazok, mint az SVM regressziónál. Az eredmények is nagyjából megegyeznek az ott látott, nem standardizált esethez tartozó értékekkel (az átlagos abszolút eltérés 5.1). Végül itt is megnézhetjük a reziduális ábrát, ami ismét hasonló az SVM módszernél kapotthoz.
12
7.4. ábra. Reziduális plot az életkor GLM regresszióval történı modellezésénél