Tartalom
Az előző fejezet egy egyszerű, mégis elég hatékony, döntési fa indukció nevű osztályozási módszert írt le. Részletesen tárgyalásra kerültek olyan kérdések is, mint a modell túlillesztés és az osztályozók kiértékelése. Ez a fejezet alternatív módszereket mutat be osztályozási modellek építéséhez, olyan egyszerű módszerekkel kezdve, mint a szabályalapú és legközelebbi szomszéd osztályozók, olyan fejlettebb módszerekig, mint a tartóvektor-gépek és együttes módszerek. További kulcsfontosságú kérdések is tárgyalásra kerülnek a fejezet végén, mint például az osztály-kiegyensúlyozatlanság és a többosztályos problémák.
A szabályalapú osztályozó
(rule-based classifier) egy módszer
rekordok ``ha
5.1. táblázat - Példa a gerincesek osztályozási feladatának szabályhalmazára
| (Elevenszülő = nem)
|
| (Elevenszülő = nem)
|
| (Elevenszülő = igen)
|
| (Elevenszülő = nem)
|
| (Vízben él = félig)
|
A modell szabályait egy
A szabály bal oldalát szabály antecendensnek (rule antecedent) vagy előfeltételnek (precondition) nevezzük. Ez attribútumtesztek egy konjunkcióját tartalmazza:
ahol
Az
Név | Test- | Bőr | Eleven- | Vízben | Tud | Van | Téli álmot |
hőmérséklet | függelékei | szülő | él | repülni | lába | alszik | |
sólyom | melegvérű | toll | nem | nem | igen | igen | nem |
grizzly medve | melegvérű | bunda | igen | nem | nem | igen | igen |
Az
Az osztályozási szabályok minőségének értékeléséhez olyan
mértékeket használhatunk, mint például a lefedettség (coverage) és pontosság (accuracy). Egy adott
ahol
5.1. Példa.
Tekintsük az 5.2. táblázatban látható adatokat. Az
szabály lefedettsége 33%, mert a tizenöt rekord közül öt támasztja
alá a szabály antecendensét. A szabály pontossága
5.2. táblázat - A gerincesek adatai
Név | Test- | Bőr | Eleven- | Vízben | Tud | Van | Téli álmot | Osztály- |
hőmérséklet | függelékei | szülő | él | repülni | lába | alszik | címke | |
ember | melegvérű | szőr | igen | nem | nem | igen | nem | Emlősők |
óriáskígyó | hidegvérű | pikkely | nem | nem | nem | nem | igen | Hüllők |
lazac | hidegvérű | pikkely | nem | igen | nem | nem | nem | Halak |
bálna | melegvérű | szőr | igen | igen | nem | nem | nem | Emlősők |
béka | hidegvérű | nincs | nem | félig | nem | igyen | igen | Kétéltűek |
komodói | hidegvérű | pikkely | nem | nem | nem | igen | nem | Hüllők |
sárkány | ||||||||
denevér | melegvérű | szőr | igen | nem | igen | igen | igen | Emlősők |
galamb | melegvérű | toll | nem | nem | igen | igen | nem | Madarak |
macska | melegvérű | bunda | igen | nem | nem | igen | nem | Emlősők |
guppi | hidegvérű | pikkely | igen | igen | nem | nem | nem | Halak |
alligátor | hidegvérű | pikkely | nem | félig | nem | igen | nem | Hüllők |
pingvin | melegvérű | toll | nem | félig | nem | igen | nem | Madarak |
tarajos sül | melegvérű | tüske | igen | nem | nem | igen | nem | Emlősők |
angolna | hidegvérű | pikkely | nem | igen | nem | nem | nem | Halak |
szalamandra | hidegvérű | nincs | nem | félig | nem | igen | igen | Kétéltűek |
A szabályalapú osztályozó egy tesztrekordot a rekord által kiváltott szabály alapján osztályoz. A szabályalapú osztályozó működésének szemléltetéséhez tekintsük az 5.1. táblázatban adott szabályhalmazt és az alábbi gerinceseket:
Név | Test- | Bőr | Eleven- | Vízben | Tud | Van | Téli álmot |
hőmérséklet | függelékei | szülő | él | repülni | lába | alszik | |
makimajom | melegvérű | bunda | igen | nem | nem | igen | igen |
teknősbéka | hidegvérű | pikkely | nem | félig | nem | igen | nem |
macskacápa | hidegvérű | pikkely | igen | igen | nem | nem | nem |
Az első gerinces a makimajom, amely melegvérű és elevenen
szüli meg a kicsinyeit. Ez az
A második gerinces a teknősbéka, amely az
Egyik szabály sem alkalmazható a macskacápára. Ebben az esetben biztosítanunk kell azt, hogy az osztályozó még ilyenkor is megbízható előrejelzést tudjon adni, bár a tesztrekordot egyetlen szabály sem fedi le.
Az előző példa a szabályalapú osztályozó által generált szabályhalmaz két fontos tulajdonságát szemlélteti.
Egymást kölcsönösen kizáró szabályok (mutually exclusive rules)
Az
Kimerítő szabályok (exhaustive rules)
Egy
Testhőmérséklet és Elevenszülő változók
binárisak, az 5.3. táblázatban látható szabályhalmaz kimerítő
lefedettségű.
5.3. táblázat - Példa kölcsönösen kizáró és kimerítő szabályhalmazra
|
|
|
Ezek a tulajdonságok együtt azt biztosítják, hogy minden
rekordot pontosan egy szabály fed le. Sajnos sok szabályalapú
osztályozó -- köztük az 5.1. táblázatban látható -- nem rendelkezik
ilyen tulajdonságokkal. Ha a szabályhalmaz nem kimerítő, akkor egy
Ha a szabályhalmaz nem kölcsönösen kizáró, akkor egy rekordot több szabály fedhet le, amelyek közül némelyek ellentmondó osztályokat prediktálhatnak. Két mód van ennek a problémának a leküzdésére.
Rendezett szabályok (ordered rules)
Ennél a módszernél a szabályhalmaz szabályai prioritásuk szerint csökkenő sorrendbe rendezettek. A prioritás többféle módon definiálható, például pontosság, lefedettség, a teljes leíró hossz, vagy a szabályok generálásának sorrendje alapján. A rendezett szabályhalmazokat döntési listáknak (decision lists) is nevezzük. Egy tesztrekord osztályozása az azt lefedő legnagyobb prioritású szabály alapján történik. Így elkerüljük a több osztályozási szabály által előrejelzett ellentmondó osztályok problémáját.
Rendezetlen szabályok (unordered rules)
Ez a módszer lehetővé teszi, hogy egy tesztrekord több osztályozási szabályt váltson ki, és minden egyes szabály konzekvensét egy bizonyos osztályra szavazásnak tekinti. A szavazatokat ezután összeszámláljuk a tesztrekord osztálycímkéjének meghatározásához. A rekordot általában a legtöbb szavazatott kapott osztályhoz rendeljük hozzá. Bizonyos esetekben a szavazat a szabály pontosságával súlyozható. Előnyei és hátrányai is vannak annak, ha rendezetlen szabályokat használunk szabályalapú osztályozó építéséhez. A rendezetlen szabályok kevésbé érzékenyek a hibákra, amelyeket egy tesztrekord osztályozásához rosszul kiválasztott szabály okoz (eltérően a rendezett szabályokon alapuló osztályozóktól, amelyek érzékenyek a szabályrendezési kritérium megválasztására). A modellépítés is kevésbé költséges, mivel a szabályokat nem szükséges rendezett sorrendben tárolni. Mindazonáltal egy tesztrekord osztályozása elég költséges feladat lehet, mert a tesztrekord attribútumait a szabályhalmaz minden szabályának előfeltételével össze kell hasonlítani.
A szakasz további részében olyan szabályalapú osztályozókra összpontosítunk, amelyek rendezett szabályokat használnak.
A szabályrendezés megvalósítható szabályonként egyesével és osztályonként. Az ezek közötti eltérést az 5.1. ábra szemlélteti.
Szabályalapú rendezési séma (rule-based ordering scheme)
Ez a módszer az egyes szabályokat valamilyen minőségi mérték alapján rendezi. Ez a rendezési séma biztosítja azt, hogy minden tesztrekord osztályozása a ``legjobb'' azt lefedő szabály alapján történik. Ennek a sémának egy lehetséges hátránya az, hogy sokkal nehezebb az alacsonyabb rangú szabályok értelmezése, mivel ezek feltételezik az őket megelőző szabályok negációját. Az 5.1. ábrán például a szabályalapú rendezésnél látható negyedik szabály
amely értelmezése a következő: Ha egy gerinces nem tollas vagy nem tud repülni, valamint hidegvérű és félig vízi, akkor hüllő. A további feltételek (melyek szerint a gerinces nem tollas vagy nem tud repülni, valamint hidegvérű) abból adódnak, hogy a gerinces nem elégíti ki az első három szabályt. Nagyszámú szabály esetén a lista végéhez közeli szabályok jelentésének értelmezése nehéz feladat lehet.
Osztályalapú rendezési séma (class-based ordering scheme)
Ennél a módszernél az ugyanahhoz az osztályhoz tartozó szabályok
együtt jelennek meg az
Mivel a legtöbb közismert szabályalapú osztályozó (mint például a C4.5rules és a RIPPER) az osztályalapú rendezést használja, a szakasz további részében a tárgyalás elsősorban erre a fajta rendezési sémára koncentrál.
Szabályalapú osztályozó építéséhez ki kell nyerni szabályok egy olyan halmazát, amely az adathalmaz attribútumai és az osztálycímke közötti kulcsfontosságú összefüggéseket azonosítja. Az osztályozási szabályok kinyerésére szolgáló módszereknek két nagy osztálya van: (1) a direkt módszerek, amelyek az osztályozási szabályokat közvetlenül az adatokból nyerik ki, valamint (2) az indirekt módszerek, amelyek az osztályozási szabályokat más osztályozási modellekből (például döntési fákból és neurális hálókból) nyerik ki.
A direkt módszerek az attribútumteret kisebb alterekre osztják fel úgy, hogy az egy altérbe tartozó rekordok mindegyike egyetlen osztályozási szabállyal sorolható be. Az indirekt módszerek osztályozási szabályokat használnak arra, hogy összetettebb osztályozási modellekről adjanak tömör leírást. Ezeket a módszereket részletesen az 5.1.4. és az 5.1.5. szakaszok tárgyalják.
A szekvenciális lefedés (sequential covering) egy gyakran használt algoritmus szabályok közvetlenül az adatokból való kinyeréséhez. A szabályok építése mohó módon történik egy bizonyos kiértékelési mérték alapján. A kettőnél több osztályt tartalmazó adathalmazokból az algoritmus osztályonként nyeri ki a szabályokat. A gerincesek osztályozási feladatához a szekvenciális lefedési algoritmus először a madarak osztályozására szolgáló szabályokat generálhatja, amelyeket az emlősök, kétéltűek, hüllők, végül pedig a halak osztályozására szolgáló szabályok követhetnek (lásd az 5.1. ábrát). Több tényezőtől függ az a kritérium, amellyel eldönthető, hogy először melyik osztályt kell generálni. Ilyen például az osztályok prevalenciája (azaz egy bizonyos osztályhoz tartozó tanulórekordok aránya) vagy az adott osztályból származó rekordok hibás osztályozásának költsége.
5.1. algoritmus. Szekvenciális lefedési algoritmus |
1: Jelölje
2: Jelölje
3: Legyen
4:for minden
5: while nem teljesül a megállási feltétel do 6:
7: Az
8:
9: end while 10: end for 11: Az
|
A szekvenciális lefedési algoritmus összefoglalását az 5.1.
algoritmus tartalmazza. Az algoritmus egy üres
Az 5.2. ábra a szekvenciális lefedési algoritmus működését
szemlélteti pozitív és negatív eseteket tartalmazó adatokra. Az 5.2.
(b) ábrán látható lefedettségű
A Tanul-Egy-Szabályt függvény
A Tanul-Egy-Szabályt függvény célja egy olyan
osztályozási szabály kinyerése, amely a tanulóhalmazban sok pozitív
esetet fed le és egyetlen negatív esetet sem (vagy csak nagyon
keveset). Optimális szabály meghatározása azonban számításigényes a
keresési tér exponenciális mérete miatt. A Tanul-Egy-Szabályt
függvény az exponenciális keresési probléma kezeléséhez a
szabályokat mohó módon építi fel. Egy kiindulási
Szabályépítési stratégia (rule-growing strategy)
Két gyakori stratégia van osztályozási szabályok építéséhez:
specializáló (general-to-specific) és általánosító
(specific-to-general). A specializáló stratégia esetén egy
Az általánosító stratégiánál a pozitív esetek valamelyikét
véletlenszerűen választjuk kezdőértékül a szabályépítési eljáráshoz. A
finomítási lépésben a szabály általánosításra kerül valamelyik
konjunkt eltávolításával úgy, hogy az több pozitív esetet tud lefedni.
Az 5.3. (b) ábrán az általánosító módszer látható a gerincesek
osztályozási feladatához. Tegyük fel, hogy kezdőértékül pozitív
esetként egy emlőst választunk. A kiindulási szabály pontosan
ugyanazokat a konjunktokat tartalmazza, mint a kezdőérték
attribútumértékei. Lefedettségének javításához a szabály
általánosításra kerül a
Az előző módszerek szuboptimális szabályokat állíthatnak elő a
szabályok mohó módra való építése miatt. A probléma elkerüléséhez
nyaláb keresés használható, ahol az algoritmus a
Szabálykiértékelés (rule evaluation)
Egy kiértékelési metrika szükséges annak meghatározásához, hogy melyik konjunkt hozzáadása (vagy törlése) szükséges a szabályépítő eljárás során. A pontosság egy kézenfekvő választás, mivel ez kifejezetten a szabály által helyesen osztályozott tanulóesetek arányát méri. Azonban a pontosság egy lehetséges korlátja az, hogy nem veszi figyelembe a szabály lefedettségét. Tekintsünk például egy olyan tanulóhalmazt, amely 60 pozitív esetet és 100 negatív esetet tartalmaz. Tegyük fel, hogy az alábbi két szabályjelöltet kapjuk:
|
|
Az
Az alábbi módszerek használhatóak ennek a problémának a kezelésére:
1. Statisztikai próba használható a gyenge lefedettségű szabályok lenyeséséhez. Kiszámítható például az alábbi likelihood-hányados statisztika:
ahol
Hasonlóan, a várható gyakoriságok
A statisztika így azt jelzi, hogy
2. Használható a szabály lefedettségét figyelembe vevő kiértékelési metrika. Tekintsük a következő kiértékelési metrikákat:
ahol
3. Használható egy olyan kiértékelési metrika is, amely
figyelembe veszi a szabály támogatottsági számát. Egy ilyen metrika a
FOIL-féle információ-nyereség
(FOIL's information gain). Egy
szabály támogatottsági száma (support count) a szabály által lefedett
pozitív esetek számának felel meg. Tegyük fel, hogy az
Mivel a mérték a
Szabálynyesés (rule pruning)
A Tanul-Egy-Szabályt függvény által generált szabályokat le lehet nyesni az általánosítási hibájuk javításához. A 178. oldalon a 4.4. szakaszban leírt módszereket alkalmazhatjuk egy szabály általánosítási hibájának becsléséhez annak megállapítására, hogy szükség van-e nyesésre. Ha a nyesés után például csökken a validációs halmazon mért hiba, akkor az egyszerűsített szabályt kell megtartani. Egy másik módszer a szabály pesszimista hibájának összehasonlítása a nyesés előtt és után (lásd a 4.4.4. szakaszt a 185. oldalon). Ha a pesszimista hiba javul a nyesés után, akkor az egyszerűsített szabályt tartjuk meg az eredeti szabály helyett.
A szekvenciális lefedés magyarázata
Egy szabály kinyerése után a szekvenciális lefedési algoritmus el kell, hogy távolítsa a szabály által lefedett valamennyi pozitív és negatív esetet. Ennek indoklását adja meg a következő példa.
5.4. ábra - Tanulórekordok eltávolítása a szekvenciális algoritmussal.

Az 5.4. ábrán egy 29 pozitív esetet és 21 negatív eset
tartalmazó adatokból kinyert három lehetséges szabály,
RIPPER algoritmus
A közvetlen módszerek szemléltetéséhez a széles körben használt szabályindukciós RIPPER algoritmust tekintjük. Ez az algoritmus a tanulóesetek számával közel lineárisan skálázódik és különösen alkalmas modellek kiegyensúlyozatlan adatokból történő építésére. A RIPPER zajos adatokkal is jól működik, mivel a modell túlillesztés elkerüléséhez egy validációs halmazt használ.
Kétosztályos problémákhoz a RIPPER a többségi osztályt választja
alapértelmezett osztályként és a kisebbségi osztály felismeréséhez
tanulja meg a szabályokat. Többosztályos problémák esetén az
osztályokat gyakoriság szerint rendezi. Jelölje
Szabályépítés
A RIPPER egy specializáló stratégiát alkalmaz a szabályok
építéséhez és a FOIL-féle információ-nyereség mértéket alkalmazza az
antecendeshez adandó legjobb konjunkt kiválasztásához. Akkor hagyja
abba a konjunktok hozzáadását, amikor a szabály negatív eseteket kezd
lefedni. Ezután az új szabályt lenyessük a validációs halmazon mért
teljesítménye alapján. Az alábbi metrikát számítjuk ki annak
megállapításához, hogy szükséges-e nyesés:
A szabályhalmaz építése
Egy szabály generálása után eltávolításra kerülnek az általa
lefedett pozitív és negatív esetek. Ezután a szabályt hozzáadjuk a
szabályhalmazhoz, feltéve, hogy ez nem sérti meg a megállási
feltételt, amely a legrövidebb leíró hossz elvén alapul. Ha az új
szabály legalább
A RIPPER további optimalizációs lépéseket is végez annak megállapításához, hogy lehet-e a meglevő szabályok közül némelyeket jobb alternatív szabályokkal helyettesíteni. Az optimalizációs eljárás részletei iránt érdeklődő olvasók a fejezet végén idézett hivatkozáshoz fordulhatnak.
Ez a szakasz egy módszert mutat be szabályhalmaz generálására döntési fából. Elvileg minden a gyökércsúcsból a döntési fa egy levélcsúcsába vezető út kifejezhető egy osztályozási szabályként. Az út mentén található konjunktok alkotják az antecendenst, míg a levélcsúcs osztálycímkéjét a szabály konzekvenséhez rendeljük hozzá. Az 5.5. ábrán látható egy döntési fából generált szabályhalmaz. Vegyük észre, hogy a szabályhalmaz kimerítő és hogy egymást kölcsönösen kizáró szabályokat tartalmaz. Némelyik szabály azonban egyszerűsíthető, amint az a következő példában is látható.
5.2. Példa.
Tekintsük a következő három szabályt az 5.5. ábráról:
|
|
|
Vegyük észre, hogy a szabályhalmaz mindig pozitív osztályt
prediktál, ha
|
|
Az
Az alábbiakban egy olyan módszert mutatunk be, amelyet a C4.5rules algoritmus használ egy szabályhalmaz döntési fából való generálására. Az 5.6. ábrán láthatók az 5.2. táblázatban adott adatokhoz a döntési fa és a kapott osztályozási szabályok.
Szabálygenerálás
A döntési fa minden a gyökérből egy levélcsúcsba vezető útjához
egy osztályozási szabályt nyerünk ki. Egy adott
Szabályrendezés
A szabályhalmaz generálása után a C4.5rules az osztályalapú
rendezési sémát használja a kinyert szabályok rendezéséhez. Az
ugyanazt az osztályt előrejelző szabályokat egy részhalmazba
csoportosítja. Kiszámolja minden egyes részhalmaz teljes leíró
hosszát, majd az osztályokat a teljes leíró hosszuk szerint növekvő
sorrendbe rendezi. A legkisebb teljes leíró hosszú osztály kapja a
legnagyobb prioritást, mivel várhatóan ez tartalmazza a legjobb
szabályokat. Egy osztály teljes leíró hosszát
A szabályalapú osztályozók az alábbi jellemzőkkel rendelkeznek:
A szabályhalmazok és a döntési fák kifejezőereje közel azonos, mivel a döntési fák ábrázolhatók egymást kölcsönösen kizáró és kimerítő szabályokkal. A szabályalapú és döntési fa osztályozók egyenesekkel jellemezhető attribútumtér-részeket alkotnak és minden egyes részhez egy osztályt rendelnek hozzá. Ha azonban a szabályalapú osztályozó lehetővé teszi több szabály kiváltását egy rekordhoz, akkor bonyolultabb döntési határ alkotható.
A szabályalapú osztályozókat általában olyan leíró modellek létrehozásához használják, amelyek értelmezése egyszerűbb, és amelyek a döntési fa osztályozókkal összemérhető teljesítményt nyújtanak.
A sok szabályalapú osztályozóba (például a RIPPER-be) beépített osztályalapú rendezési eljárás kiválóan alkalmas kiegyensúlyozatlan osztályeloszlású adatállományok kezelésére.