Data Mining Machine Learning a gyakorlatban - eszközök és technikák Slides for Chapter 4 of Data Mining by I. H. Witten, E. Frank and M. A. Hall
Nagyon szétágazó attribútumok Probléma: azon attribútumok, amelyeknek nagyon sok különböző értéke van (extrém esetben: ID kód) Alhalmazok tiszták, ha nagyon sok szám-érték létezik Informaciós haszon kompromitált ha sok számértékű attribútum van Ennek eredménye az overfitting (túlillesztés)(az előrejelzés szempontjából nem optimális attribútumok kiválasztása) Még egy probléma: fragmentáció Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Időjárási adatok ID kóddal N M L K J I H G F E D C B A ID code No True High Mild Rainy Yes False Normal Hot Overcast Sunny Cool Play Windy Humidity Temp. Outlook Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
ID kod attribútum fura fája A szétvágás entrópiája: Információs hasznon maximális az ID kód esetében (0.940 bit) infoID code=𝑖𝑛𝑓𝑜 0,1 𝑖𝑛𝑓𝑜 0,1 ...𝑖𝑛𝑓𝑜 0,1 =0𝑏𝑖𝑡𝑠 Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Haszonarány Haszonarány: egy módosítása az információs hasznonnak, amelyik csökkenti a torzítást A haszonarány figyelembe veszi az elágazások számát és nagyságát az attribútumválasztáskor Kijavítja az információs hasznot, használva a intrinszek információt egy szétvágásra Belső információ: az eloszlási entrópiája az egyedeknek elágazásokba (pl. mennyi infóra van szükség hogy megmondjuk melyik ághoz tartozik egy egyed) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Kiszámolni a haszonarányt Példa: ID kód belső információja Az attribútum értékek csökkennek amint a belső információ egyre nagyobb lesz Haszonarány definíciója: Példa: info 1,1,...,1 =14× −1 14 ×log 1 14 =3.807bits gain_ratio𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑒= gain𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑒 intrinsic_info𝑎𝑡𝑡𝑟𝑖𝑏𝑢𝑡𝑒 gain_ratioID code= 0.940bits 3.807bits =0.246 Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Haszonarány az időjárási adatokra 0.019 Gain ratio: 0.029/1.557 0.157 Gain ratio: 0.247/1.577 1.557 Split info: info([4,6,4]) 1.577 Split info: info([5,4,5]) 0.029 Gain: 0.940-0.911 0.247 Gain: 0.940-0.693 0.911 Info: 0.693 Temperature Outlook 0.049 Gain ratio: 0.048/0.985 0.152 Gain ratio: 0.152/1 0.985 Split info: info([8,6]) 1.000 Split info: info([7,7]) 0.048 Gain: 0.940-0.892 Gain: 0.940-0.788 0.892 Info: 0.788 Windy Humidity Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Még több a hasznonarányról Az “Outlook” most is előrelép Habár: az “ID kódnak” nagyobb a haszonaránya Standard rögzítés: ad hoc teszt hogy megelőzzük az ilyen tipusú attribútumos szétvágást Probléma a haszonaránnyal: túlkompenzálhat Kiválaszthat egy attribútumot csak azért mert a hozzárendelt belső információ nagyon kicsi Standard megoldás: csak azon attribútumokat vegyük figyelembe, amelyek nagyobbak az átlag információs haszonnál Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Tárgyalás A döntési fák fentről lefele való bevezetése: ID3, Ross Quinlan által kifejlesztett algoritmus Hasznossági arány csak egy módosítása az alap- algoritmusnak C4.5: számértékű algoritmusokat kezel, hiányzó értékeket, zajos adatokat Hasonló megközelítés: CART Annyi más attribútum-kiválasztási kritérium létezik! (De egy kis változattal az eredmény pontosságát illetően) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Lefedő algoritusok Alakítsuk át a döntési fát szabályhalmazzá Egyenes, de a szabályhalmaz túl komplex Ennél hatékonyabb konverziók nem egyszerűek Ahelyett szabályhalmazt lehet generálni egyenesen Minden osztálynak találjunk szabálybázist, amelyik lefödi az összes egyedét (a kidobott egyedek nem részei az osztálynak) Megvalósítani egy lefedési megközelítést: minden lépésben azonosítani egy szabályt, amelyik “lefedi” egyes egyedeket Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Példa: egy szabályt generálunk If true then class = a If x > 1.2 and y > 2.6 then class = a If x > 1.2 then class = a Lehetséges szabályhalmaz “b” osztályra: Lehet több szabályt használni, megtalálni a “tökéletes” szabályhalmazt If x 1.2 then class = b If x > 1.2 and y 2.6 then class = b Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Szabályok vs. fák Megfelelő döntési fa: (ugyanazon előrejelzéseket szolgáltatja) De: szabálybázisok jobban áttekinthetők lehetnek ha a döntési fák egyforma alfákat tartalmazhat Szintén: többosztályos esetben, a lefedő algoritmusok egyszerre csak egy osztályra figyelnek, míg a döntési fa tanulási módszere minden osztályt figyelembe vesz Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Egyszerű lefedő algoritmus Úgy generál szabályokat, hogy teszteket aduk hozzá, amelyik maximalizálja a pontosságát Hasonló a döntési fákhoz: probléma azon attri- bútum kiválasztása, amelyet a szétvágáshoz használunk De: döntési fa használata maximalizálja a teljes tisztaságát Minden új teszt lecsökkenti a szabály lefödését: Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Kiválasztani egy tesztet Cél: maximalizálni a pontosságot t az összes egyed, amelyiket lefödi a szabály p pozitív példa arra, hogy az osztály le van fedve a szabály által t – p hiba, amit a szabály behozott Válasszuk ki azon teszteket, amelyek maximalizálják a p/t arányt Végeztünk, ha p/t = 1 vagy az egyedhalmazt nem lehet tovább szétvágni Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Példa: kontaktlencse adatok If ? then recommendation = hard Keresett szabály: Lehetséges tesztek: 4/12 Tear production rate = Normal 0/12 Tear production rate = Reduced Astigmatism = yes Astigmatism = no 1/12 Spectacle prescription = Hypermetrope 3/12 Spectacle prescription = Myope 1/8 Age = Presbyopic Age = Pre-presbyopic 2/8 Age = Young Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Módosított szabály és az eredmény adat A legjobb tesztet eredményező szabály: Módosított szabállyal lefedett egyedek: If astigmatism = yes then recommendation = hard None Reduced Yes Hypermetrope Pre-presbyopic Normal Myope Presbyopic Hard hard Young Recommended lenses Tear production rate Astigmatism Spectacle prescription Age Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
További finomítások Aktuális állapot: Lehetséges tesztek: If astigmatism = yes and ? then recommendation = hard Aktuális állapot: Lehetséges tesztek: 4/6 Tear production rate = Normal 0/6 Tear production rate = Reduced 1/6 Spectacle prescription = Hypermetrope 3/6 Spectacle prescription = Myope 1/4 Age = Presbyopic Age = Pre-presbyopic 2/4 Age = Young Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Módosított szabály és az eredmény adat A legjobb tesztet eredményező szabály: A módosított szabály által lefedett egyedek: If astigmatism = yes and tear production rate = normal then recommendation = hard None Normal Yes Hypermetrope Pre-presbyopic Hard Myope Presbyopic hard Young Recommended lenses Tear production rate Astigmatism Spectacle prescription Age Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
További finomítások Aktuális állapot: Lehetséges tesztek: Egyenlőség az első és a negyedik között Kiválasztjuk azt, amelyik többet fed le If astigmatism = yes and tear production rate = normal and ? then recommendation = hard 1/3 Spectacle prescription = Hypermetrope 3/3 Spectacle prescription = Myope 1/2 Age = Presbyopic Age = Pre-presbyopic 2/2 Age = Young Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Az eredmény Végső szabály: A második szabály, amely “hard lenses”-t ad: (azokból az egyedekből, amelyek fedetlenek) Ez a 2 szabály lefödi a “hard lenses” eseteket: A folyamatot megismétlik a másik 2 osztállyal If astigmatism = yes and tear production rate = normal and spectacle prescription = myope then recommendation = hard If age = young and astigmatism = yes and tear production rate = normal then recommendation = hard Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Pszeudo-kód a PRISM-re For each class C Initialize E to the instance set While E contains instances in class C Create a rule R with an empty left-hand side that predicts class C Until R is perfect (or there are no more attributes to use) do For each attribute A not mentioned in R, and each value v, Consider adding the condition A = v to the left-hand side of R Select A and v to maximize the accuracy p/t (break ties by choosing the condition with the largest p) Add A = v to R Remove the instances covered by R from E Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Szabályok vs. döntési listák PRISM-ből eltávolítva a külső hurkokat egy döntési listát generál egy osztálynak Egymásutáni szabályok az előzőleg le nem fedett szabályokat egészítik ki De: sorrend nem számít mivel minden szabály ugyanazt az osztályt jósolja Külső hurkok minden osztályt különállónak vesznek Semmilyen sorbarendezési függőség nincs Probléma: egymásratevődő szabályok, alap szabály szükséges Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Válaszd el és uralkodj PRISM tipusú módszerek (egy osztállyal dolgoznak) azok szétválaszt-és-uralkodik algoritmusok: Először azonosíts egy használható szabályt Utána, különítsd el a lefödött egyedeket Végül, “uralkodj” a megmaradt egyedeken Különbség az oszd-és-uralkodj módszerektől: Azon alhalmazok, amelyeket lefödte a szabály nem szükséges továbbiakban kutatni Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Asszociációs szabályok bányászata Naïve módszer asszociációs szabályok felfedésére: Használjuk az elkülönít-és-uralkodik módszert Kezeljünk minden lehetséges kombinációját az attributumok értékeinek mint különálló osztályokat Két probléma: Számítási komplexitás Az eredmény szabályok száma (amelyeket megnyesünk a támogatás és bizonyosság) De: megtalálhatunk nagy támogatottságú szabályokat egyenesen! Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Egyedhalmazok Support: azon egyedek száma, amelyeket helyesen fednek le az asszociációs szabályok Olyan, mint az, hogy megszámoljuk azon egyedeket, amelyek fedve vannak minden teszttel a szabályból (LHS and RHS!) Item: egy teszt/attribútum-érték páros Item set : minden egyed, amelyik megjelenik egy szabályban Cél: csak azon szabályok, amelyek meghaladnak bizonyos előre-meghatározott support-ot Csináld úgy, hogy megtalálod minden egyedhalmazt adott minimális supportal és hozzál létre szabályokat belőle! Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Időjárás adatok No True High Mild Rainy Yes False Normal Hot Overcast Sunny Cool Play Windy Humidity Temp Outlook Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Egyedhalmazok az időjárásra … Outlook = Rainy Temperature = Mild Windy = False Play = Yes (2) Outlook = Sunny Humidity = High Windy = False (2) Humidity = High (3) Temperature = Cool (4) Temperature = Hot Play = No (2) Humidity = High (2) Temperature = Hot (2) Outlook = Sunny (5) Four-item sets Three-item sets Two-item sets One-item sets Összesen: 12 egyelemű, 47 kételemű, 39 három- elemű, 6 négyelemű és 0 ötelemű halmaz (a legkisebb 2 support-al) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Szabályok létrehozása egy adathalmazból Először létrehozunk minden egyedhalmazt mini-mális support-al, utána hozzuk létre a szabályokat Példa: Hét (2N-1) lehetséges szabály: Humidity = Normal, Windy = False, Play = Yes (4) 4/4 4/6 4/7 4/8 4/9 4/12 If Humidity = Normal and Windy = False then Play = Yes If Humidity = Normal and Play = Yes then Windy = False If Windy = False and Play = Yes then Humidity = Normal If Humidity = Normal then Windy = False and Play = Yes If Windy = False then Humidity = Normal and Play = Yes If Play = Yes then Humidity = Normal and Windy = False If True then Humidity = Normal and Windy = False and Play = Yes Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Szabályok az időjárás adatokra Szabályok, ahol support > 1 és confidence = 100%: Összegezve: 3 szabály 4-es supporttal 5 szabály 3-as supporttal 50 szabály 2-es supporttal 100% 2 Humidity=High Outlook=Sunny Temperature=Hot 58 ... 3 Humidity=Normal Temperature=Cold Play=Yes 4 Play=Yes Outlook=Overcast Temperature=Cool Humidity=Normal Windy=False 1 Association rule Conf. Sup. Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Példaszabályok ugyanarra Egyedhalmaz: Eredményszabályok (mind 100% confidence): A következő “gyakori” egyedhalmaz: Temperature = Cool, Humidity = Normal, Windy = False, Play = Yes (2) Temperature = Cool, Windy = False Humidity = Normal, Play = Yes Temperature = Cool, Windy = False, Humidity = Normal Play = Yes Temperature = Cool, Windy = False, Play = Yes Humidity = Normal Temperature = Cool, Windy = False (2) Temperature = Cool, Humidity = Normal, Windy = False (2) Temperature = Cool, Windy = False, Play = Yes (2) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Egyedhalmazok hatásos generálása Hogyan tudjuk hatékonyan megtalálni az összes gyakori egyedhalmazokat? Megtalálni egyelemű egyedhalmazt egyszerű Ötlet: használjunk 1 elemű halmazokat, hogy létrehozzunk 2 eleműeket, 2 eleműeket, hogy létrehozzunk 3 eleműeket, … Ha (A B) gyakori egyedhalmaz, akkor (A) és (B) ugyancsak gyakori egyedhalmaz lehet! Általában: ha X egy gyakori k elemű, akkor a (k-1)-alhalmaza X-nek is gyakori Számítsuk ki a k eleműeket összevonva (k-1)- eleműeket Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Példa Adott: öt darab 3 elemű egyedhalmaz (A B C), (A B D), (A C D), (A C E), (B C D) Ábécé sorrendben! 4 elemű halmaz jelöltek: (A B C D) OK mivel (A C D) (B C D) (A C D E) Nem OK mivel (C D E) Végső ellenőrzés: megszámolni azz egyedeket az adathalmazban! (k –1)-egyedhalmazok hash táblákban tárolva Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Hatékonyan létrehozni szabályokat Keressük az összes magas-konfidrencia szabályt Az előzmény supportot hash táblából megkapjuk De: Nyerserő módszer (2N-1) Jobbik út: felépíteni (c + 1)-egymásból következő szabályt a c-egymásból következőből Meglátás: (c + 1)-egymásból következő szabály csak akkor lehet tartható, ha a neki megfelelő c-egymásból következő szabályok ugyancsak tarthatók Az eredmény algoritmus hasonló a nagy számosságú halmazok eljárásához Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Példa 1-konszekvens szabály: Neki megfelelő 2-konszekvens szabály: Végső ellenőrzése az előzményeknek a hash táblával! If Outlook = Sunny and Windy = False and Play = No then Humidity = High (2/2) If Humidity = High and Windy = False and Play = No then Outlook = Sunny (2/2) If Windy = False and Play = No then Outlook = Sunny and Humidity = High (2/2) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Asszociációs szabályok: tárgyalás A fenti módszer egyszeri átfutást igényel minden különböző mértetű egyedhalmazra Más lehetőség: létrehozni (k+2)-egyedhalmazt rögtön a (k+1)-ik egyedhalmaz létrehozása után Eredmény: több mint szükséges (k+2)-es egyedhalmaz létrehozása, az adatfeldolgozás során Értelme akkor van, ha a memória kicsi az adatokra Gyakorlati kimenet: létrehozni egy bizonyos számú törvényt(pl. Lépésenként csökkenteni a min. support-ot) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Más kimenetek Standard ARFF formátumok nem megfelelőek a tipikus piaci kosár adatokra Az attribútumok árukat jelentenek egy kosárban és legtöbb hiányzik Az adatokat gyér formátumban lehet ábrázolni Az instaniákat másképp tranzakcióknak hívjuk Confidence nem feltétlenül a legjobb mérce Példa: tej szinte minden szupermarket tranzakció-ban megjelenik Más mérce is szóba jöhet (pl. lift) Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)
Lineáris modelek: lineáris regresszió Természetesen működik attribútum számértékekkel Standard technika numerikus előrejelzésre A kimenet lineáris kombinációja az attribútumoknak A súlyokat a tanítóadatokból számítjuk ki Becslett érték az első tanító egyednek a(1) (feltételezve, hogy minden egyedet kibővítik egy konstans attribútummal, mely értéke 1) 𝑥= 𝑤 0 𝑤 1 𝑎 1 𝑤 2 𝑎 2 ... 𝑤 𝑘 𝑎 𝑘 𝑤 0 𝑎 0 1 𝑤 1 𝑎 1 1 𝑤 2 𝑎 2 1 ... 𝑤 𝑘 𝑎 𝑘 1 = 𝑗=0 𝑘 𝑤 𝑗 𝑎 𝑗 1 Data Mining: Practical Machine Learning Tools and Techniques (Chapter 4)