A fejezetben eddig látott osztályozási módszerek a legközelebbi szomszéd módszer kivételével ismeretlen esetek osztálycímkéit egyetlen a tanulóadatokból létrehozott osztályozó segítségével jelzik előre. Ez a szakasz módszereket mutat be az osztályozás pontosságának több osztályozó előrejelzéseinek összesítése általi javításához. Ezeket a módszereket együttes (ensemble) vagy kombinált osztályozó (classifier combination) módszereknek nevezik. Egy együttes módszer alaposztályozók (base classifier) egy halmazát hozza létre a tanulóadatokból és úgy végez osztályozást, hogy egy többségi szavazást tart az egyes alaposztályozók által adott előrejelzéseken. A fejezet megmagyarázza, hogy miért érnek el általában jobb eredményt az együttes módszerek, mint bármelyik osztályozó külön, és módszereket mutat be az osztályozó-együttes létrehozásához.
A következő példa szemlélteti, hogy hogyan javítja egy osztályozó teljesítményét egy együttes módszer.
5.7. Példa.
Vegyük huszonöt bináris osztályozó egy együttesét, amelyek
mindegyikének hibaaránya
amely lényegesen kisebb, mint az alaposztályozók hibaaránya.
Az 5.30. ábra huszonöt bináris osztályozó egy együttesének
hibaarányát (
Az előbbi példa két szükséges feltételét szemlélteti annak, hogy egy együttes osztályozó jobb eredményt érjen el, mint egyetlen osztályozó: (1) az alaposztályozók függetlenek kell, hogy legyenek egymástól, (2) az alaposztályozók jobb eredmény kell, hogy elérjenek, mint egy véletlen találgatást végző osztályozó. A gyakorlatban bonyolult az alaposztályozók közötti teljes függetlenség biztosítása. Mindazonáltal az osztályozási pontosságok javulását figyelték meg olyan együttes módszerekben, amelyekben az alaposztályozók gyengén korreláltak.
Az együttes módszer egy logikai nézetét az 5.31. ábra mutatja be. Az alapötlet az eredeti adatokból több osztályozó alkotása, és az ismeretlen esetek osztályozásánál az előrejelzéseik összesítése. Az osztályozók együttese sokféleképpen alkotható meg:
A tanulóhalmaz manipulálásával. Ebben a megközelítésben több tanulóhalmazt hozunk létre az eredeti adatok valamilyen mintavételi eloszlás szerinti újramintavételezésével. A mintavételi eloszlás meghatározza, hogy mennyire valószínű az, hogy egy eset kerül kiválasztásra a tanításhoz, ez kísérletenként változhat. Ezután egy osztályozót építünk minden egyes tanulóhalmazból egy adott tanuló algoritmus segítségével. A zsákolás (bagging) és gyorsítás (boosting) két példa a tanulóhalmazt manipuláló együttes módszerekre. Ezeket a módszereket részletesebben az 5.6.4. és 5.6.5. szakaszok írják le.
A bemeneti jellemzők manipulálásával. Ebben a megközelítésben a bemeneti jellemzők egy részhalmazát választjuk ki minden egyes tanulóhalmaz képzéséhez. A részhalmaz választható véletlenszerűen vagy szakterületi szakértők ajánlása alapján. Néhány tanulmány azt mutatja, hogy a módszer nagyon jól működik erősen redundáns jellemzőket tartalmazó adatokkal. Az 5.6.6. szakaszban ismertetett véletlen erdő (random forest) egy együttes módszer, amely a bemeneti jellemzőket manipulálja és döntési fákat használ fel alaposztályozókként.
Az osztálycímkék
manipulálásával. Ez a módszer akkor használható fel, ha
az osztályok száma elegendően nagy. A tanulóadatokat egy bináris
osztályozási feladattá alakítjuk úgy, hogy az osztálycímkéket
véletlenszerűen két diszjunkt halmazra (
A tanuló algoritmus
manipulálásával. Sok tanuló algoritmus manipulálható
úgy, hogy az algoritmus többször egymás utáni alkalmazása
ugyanazokra a tanulóadatokra különböző modelleket eredményezhet.
Például egy mesterséges neurális háló különböző modelleket
alkothat a hálózati topológia vagy a neuronok közötti kapcsolatok
kezdeti súlyainak megváltoztatásával. Hasonlóan alkotható döntési
fák egy együttese a faépítő eljárásba véletlenszerűség
juttatásával. Például ahelyett, hogy minden egyes csomópontban a
legjobb vágó attribútumot választanánk, vágáshoz válaszhatjuk
véletlenszerűen a legjobb
5.5. algoritmus. Az együttes módszer általános eljárása |
1: Jelölje D az eredeti tanulóadatokat, k az alaposztályozók számát és T a tesztadatokat 2: for i=1 to k do 3: Hozzuk létre a Di tanulóhalmazt D-ből 4: Építsünk egy Ci alaposztályozót Di-ből 5: end for 6: for minden
7: C*(x)=Szavazás(C1(x),C2(x), …, Ck(x)) 8: end for |
Az első három megközelítés tetszőleges osztályozóra alkalmazható
általános módszer, míg a negyedik megközelítés a használt osztályozó
típusától függ. Ezeknek a módszereknek a többségéhez az
alaposztályozókat szekvenciálisan (egymás után) vagy párhuzamosan
(egyszerre) lehet generálni. Az 5.5. algoritmus mutatja egy együttes
osztályozó szekvenciális építéséhez szükséges lépéseket. Az első
lépés, hogy hozzunk létre egy tanulóhalmazt a
Végül egy
Az osztály megkapható az egyes előrejelzéseken egy többségi szavazást végezve vagy az előrejelzéseknek az alaposztályozó pontosságával történő súlyozásával.
A torzítás-variancia felbontás egy formális módszer egy prediktív modell előrejelzési hibájának elemzéséhez. A következő példa a módszer egy intuíción alapuló magyarázatát adja.
Az 5.32. ábra egy bizonyos szögben kilőtt lövedék röppályáit
mutatja. Feltételezzük, hogy a lövedék egy bizonyos
ahol
Egy adott eset címkéjének előrejelzésének feladata elemezhető ugyanennek a megközelítésnek a segítségével. Egy adott osztályozó esetén bizonyos előrejelzésekről kiderülhet, hogy helyesek, míg a többiek teljesen rosszak lehetnek. Egy osztályozó várható hibáját (5.67) egyenletben adott három tag összegére bonthatjuk fel, ahol a várható hiba annak valószínűsége, hogy az osztályozó hibásan osztályoz egy esetet. A szakasz hátralevő része a torzítás, variancia és zaj jelentését vizsgálja az osztályozással összefüggésben.
Egy osztályozót általában a tanulóhalmazon vett hiba
minimalizálására tanítunk. Ahhoz azonban, hogy hasznos legyen, az
osztályozónak képesnek kell lennie korábban soha nem látott esetek
osztálycímkéiről megalapozott javaslatot adni. Ehhez szükséges, hogy
az osztályozó olyan területekre általánosítsa a döntési határát,
amelyekben nem állnak rendelkezésre tanulóesetek. Ez egy olyan döntés,
amely az osztályozó tervezéskori választásától függ. A döntési fa
indukciónál például egy kulcsfontosságú tervezési kérdés egy kis
várható hibájú döntési fa nyeréséhez szükséges nyesés. Az 5.33. ábrán
két döntési fa látható,
5.33. ábra - Induktív tanulással ugyanazokból a tanulóadatokból létrehozott két külöböző bonyolultságú döntési fa

Egy osztályozó várható hibáját befolyásolja a tanulóadatok
változékonysága is, mert a különböző összetételű tanulóhalmazok
különböző döntési határokhoz vezethetnek. Hasonló ez
A várható hibához hozzájáruló torzítás és variancia mértéke a használt osztályozó típusától függ. Az 5.34. ábra egy döntési fa és egy 1-legközelebbi szomszéd osztályozó által előállított döntési határokat hasonlítja össze. Minden egyes osztályozóhoz azt a döntési határt ábrázoljuk, amelyet 100 olyan tanulóhalmazból származtatott modell ``átlagolásával'' kapunk, amelyek mindegyike 100 esetet tartalmaz. Egy szaggatott vonallal ábrázoltuk a tényleges döntési határt is, amelyből az adatokat előállítottuk. A tényleges döntési határ és az ``átlagolt'' döntési határ közötti különbség az osztályozó torzítását tükrözi. A modellek átlagolása után vegyük észre, hogy a tényleges döntési határ és az 1-legközelebbi szomszéd osztályozó által előállított döntési határ közötti eltérés kisebb, mint a döntési fa osztályozónál megfigyelt eltérés. Ez az eredmény arra utal, hogy egy 1-legközelebbi szomszéd osztályozó torzítása kisebb, mint egy döntési fa osztályozó torzítása.
Másrészt az 1-legközelebbi szomszéd osztályozó érzékenyebb a tanulóesetek összetételére. Ha különböző tanulóhalmazokból származtatott modelleket vizsgálunk, egy 1-legközelebbi szomszéd osztályozó döntési határának nagyobb a variabilitása, mint egy döntési fának. Emiatt kisebb egy döntési fa osztályozó döntési határának varianciája, mint az 1-legközelebbi szomszéd osztályozónak.
A bootstrap aggregálásnak (bootstrap aggregating) is nevezett
zsákolás egy módszer, amely egyenletes eloszlás szerint ismétlődően
(visszatevéssel) mintavételez egy adathalmazt. Minden egyes bootstrap
minta ugyanolyan méretű, mint az eredeti adatok. Mivel a
mintavételezés visszatevéssel történik, bizonyos esetek többször is
szerepelhetnek ugyanabban a tanulóhalmazban, míg mások kihagyhatók a
tanulóhalmazból. Egy
5.6. algoritmus. A zsákolás algoritmusa |
1: Legyen k a bootstrap minták száma 2: for i=1 to k do 3: Hozzunk létre egy N méretű Di bootstrap mintát 4: Tanítsunk egy Ci alaposztályozót a Di bootstrap mintán 5: end for 6:
{
|
A zsákolás működésének szemléltetéséhez tekintsük az 5.4.
táblázatban látható adatokat. Jelöljön
5.4. táblázat - Példa zsákoló osztályozók egy együttesének építéséhez felhasznált adatokra
| 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | 0,6 | 0,7 | 0,8 | 0,9 | 1 |
| 1 | 1 | 1 |
|
|
|
| 1 | 1 | 1 |
Zsákolás nélkül a legjobb döntési tönk, amit előállíthatunk
Az 5.4. táblázatban adott teljes adathalmazt úgy osztályozzuk,
hogy egy többségi szavazást tartunk az egyes alaposztályozók által
adott előrejelzések között. Az 5.36. ábrán láthatók az előrejelzések
eredményei. Mivel az osztálycímkék
Az előbbi példa az együttes módszerek felhasználásának egy másik előnyét szemlélteti a célfüggvény reprezentációjának javítása szempontjából. Bár minden alaposztályozó egy döntési tönk, az osztályozók kombinálása egy kettő mélységű döntési fához vezethet.
A zsákolás az alaposztályozók varianciájának csökkentése által javítja az általánosítási hibát. A zsákolás teljesítménye az alaposztályozók stabilitásától függ. Ha egy alaposztályozó instabil, a zsákolás segít a tanulóadatok véletlen változásaihoz tartozó hibákat csökkenteni. Ha egy alaposztályozó stabil, azaz robusztus a tanulóhalmaz kis perturbációira, akkor az együttes hibáját elsősorban az alaposztályozó torzítása okozza. Ebben az esetben lehet, hogy a gyorsítás nem tudja jelentősen javítani az alaposztályozók teljesítményét. Akár ronthatja is az osztályozók teljesítményét, mivel az egyes tanulóhalmazok tényleges mérete megközelítőleg 37%-kal kisebb, mint az eredeti adatoké.
Végül mivel minden mintának azonos valószínűsége van a kiválasztásra, a zsákolás nem összpontosít semmilyen meghatározott mintára a tanulóadatokban. Ezért zajos adatokra alkalmazásnál kevésbé hajlamos a modell túlillesztésre.
A gyorsítás egy iteratív eljárás, ami a tanulóesetek eloszlásának adaptív módosítására szolgál, hogy az alaposztályozók a nehezen osztályozható esetekre összpontosítsanak. A zsákolástól eltérően a gyorsítás minden egyes tanulóesethez egy súlyt rendel hozzá, és a súlyt minden gyorsítási menet végén adaptív módon módosítja. A tanulóesetekhez hozzárendelt súlyokat az alábbiak szerint lehet felhasználni:
Felhasználhatóak mintavételezési eloszlásként az eredeti adatokból egy bootstrap mintahalmaz választásához.
Felhasználhatja őket az alaposztályozó egy a nagyobb súlyú esetek felé hajló modell megtanulásához.
Ez a szakasz egy algoritmust ír le, amely a tanulóhalmaz
mintavételezési eloszlásának meghatározásához az esetek súlyait
használja fel. Kezdetben minden esethez azonos súlyokat,
A következő táblázat mutatja az egyes gyorsítási menetek során kiválasztott eseteket.
Gyorsítás (1. menet): | 7 | 3 | 2 | 8 | 7 | 9 | 4 | 10 | 6 | 3 |
Gyorsítás (2. menet): | 5 | 4 | 9 | 4 | 2 | 5 | 1 | 7 | 4 | 2 |
Gyorsítás (3. menet): | 4 | 4 | 8 | 10 | 4 | 5 | 4 | 6 | 3 | 4 |
Kezdetben minden mintához ugyanazt a súlyt rendeljük. Bizonyos esetek azonban -- például a 3. és 7. -- egynél többször kerülhetnek kiválasztásra, mert a mintavételezés visszatevéssel történik. Ezután egy, az adatokból épített osztályozót használunk az összes eset osztályozásához. Tételezzük fel, hogy a 4. eset nehezen osztályozható. Ennek a mintának a súlyát növelni fogjuk a jövőbeli iterációkban, amennyiben ismételten tévesen osztályozzuk. Eközben nagyobb esélye van a következő menetben kiválasztásra azoknak az eseteknek is, amelyek az előző menetben nem lettek kiválasztva -- például az 1. és 5. eseteknek --, mivel az előrejelzéseik valószínűleg rosszak voltak az előző menetben. A gyorsítási menetek előrehaladtával a legnehezebben osztályozható esetek még inkább túlsúlyba kerülnek. A végső együttest az egyes gyorsítási menetekből nyert alaposztályozók összességeként kapjuk meg.
Az évek során a gyorsítási algoritmusnak számos implementációja került kifejlesztésre. Ezek az algoritmusok a következők tekintetében térnek el: (1) hogy hogyan történik a tanulóesetek súlyainak módosítása az egyes gyorsítási menetek végén, és (2) hogy hogyan történik az egyes osztályozók által adott előrejelzések kombinálása. Egy AdaBoost nevű implementációval foglalkozik a következő szakasz.
AdaBoost
Jelölje
ahol
Megjegyezzük, hogy
Az
ahol
Többségi szavazási séma helyett minden egyes
5.7. algoritmus. AdaBoost algoritmus |
1: w = {wj=1/N | j=1,2,…,N} {az N eset súlyainak inicializálása} 2: Legyen k a gyorsítási menetek száma 3: for i=1 to k do 4:
5:
6: Tanítsunk egy Ci alaposztályozót Di-n Alkalmazzuk Ci-t az eredeti tanulóhalmaz, D, valamennyi esetére 7:
8:if
9: w =
10: Menjünk vissza a 4. lépésre 11: end if 12:
13: Módosítsuk minden eset súlyát az (5.69) egyenlet szerint 14: end for 15:
|
Vizsgáljuk meg, hogy hogyan működik a gyorsítási módszer 20. táblázatban látható adatokra. Kezdetben minden mintelemnek azonos súlya van. Az 5.38. (a) ábrán láthatók a tanításhoz kiválasztott esetek három gyorsítási menet után. Minden mintaelem súlyát az (5.69) egyenlet segítségével módosítjuk minden egyes gyorsítási menet végén.
Gyorsítás nélkül a döntési tönk pontossága legfeljebb 70%. Az 5.39. (b) ábrán adjuk meg az előrejelzések eredményeit az AdaBoost használata esetén. Az együttes osztályozó végső előrejelzését úgy kapjuk meg, hogy az egyes alaposztályozók által adott előrejelzések súlyozott átlagát vesszük, amely az 5.39. (b) ábra utolsó sorában látható. Figyeljük meg, hogy az AdaBoost tökéletesen osztályozza a tanulóadatok minden esetét.
A gyorsítás egy fontos analitikus eredménye azt mutatja, hogy az együttes tanulóhalmazon vett hibáját a következő kifejezés korlátozza:
ahol
Ha
A véletlen erdők az együttes módszerek egy olyan osztályát
képviselik, amelyeket kifejezetten döntési fa osztályozókhoz
terveztek. Több döntési fa által adott előrejelzéseket kombinálnak,
ahol mindegyik fa véletlen vektorok egy független halmazának értékei
alapján kerül létrehozásra, ahogyan az az 5.40. ábrán látható. A
véletlen vektorok egy rögzített valószínűségi eloszlásból jönnek
létre, ellentétben az AdaBoost-ban használt adaptív módszertől, ahol a
valószínűségi eloszlás módosításra kerül, hogy azokra az esetekre
koncentráljon, amelyeket nehéz osztályozni. A döntési fákat
felhasználó zsákolás a véletlen erdők egy speciális esete, ahol úgy
viszünk véletlenszerűséget a modellépítő eljárásba, hogy az eredeti
tanulóhalmazból véletlenszerűen választunk visszatevéssel
Elméletileg bizonyított, hogy a véletlen erdők általánosítási hibájának felső korlátja a következő kifejezéshez konvergál, amikor a fák száma elég nagy:
ahol
ahol
Minden döntési fa egy valamilyen rögzített valószínűségi
eloszlásból generált véletlen vektort használ fel. Sokféleképpen
építhető be a faépítő folyamatba egy véletlen vektor. Az első módszer
az, hogy válasszunk véletlenszerűen
Ha az eredeti jellemzők
Egy harmadik módszer a véletlen fák generálásához a döntési fa
minden csúcsában az
Tapasztalatilag igazolható, hogy a véletlen erdők osztályozási pontosságai elég hasonlóak az AdaBoost algoritmushoz. Robusztusabbak a zajra és sokkal gyorsabbak is, mint az AdaBoost algoritmus. A következő szakaszban hasonlítjuk össze a különféle együttes módszerek osztályozási pontosságait.
Az 5.5. táblázat mutatja egy döntési fa zsákolással, gyorsítással és véletlen erdővel kapott teljesítménye összehasonlításának tapasztalati eredményeit. Mindegyik együttes módszer ötven döntési fából álló alaposztályozókat használ. A táblázatban közölt osztályozási pontosságokat 10-szeres keresztellenőrzésből kaptuk. Vegyük észre, hogy az együttes osztályozók általában sok adathalmazon felülmúlnak egyetlen döntési fa osztályozót.
5.5. táblázat - Döntési fa osztályozó pontosságának összehasonlítása három együttes módszer ellenében. (Az utolsó oszlopban RF a véletlen erdőt jelenti.)
Adathalmaz | Szám | Döntési | Zsákolás | Gyorsítás | RF |
(attribútumok, osztályok, | fa (%) | (%) | (%) | (%) | |
rekordok) |
|
|
|
| |
Anneal | (39, 6, 898) | 92,09 | 94,43 | 95,43 | 95,43 |
Australia | (15, 2, 690) | 85,51 | 87,10 | 85,22 | 85,80 |
Auto | (26, 7, 205) | 81,95 | 85,37 | 85,37 | 84,39 |
Breast | (11, 2, 699) | 95,14 | 96,42 | 97,28 | 96,14 |
Cleve | (14, 2, 303) | 76,24 | 81,52 | 82,18 | 82,18 |
Credit | (16, 2, 690) | 85,8 | 86,23 | 86,09 | 85,8 |
Diabetes | (9, 2, 768) | 72,40 | 76,30 | 73,18 | 75,13 |
German | (21, 2, 1000) | 70,90 | 73,40 | 73,00 | 74,5 |
Glass | (10, 7, 214) | 67,29 | 76,17 | 77,57 | 78,04 |
Heart | (14, 2, 270) | 80,00 | 81,48 | 80,74 | 83,33 |
Hepatitis | (20, 2, 155) | 81,94 | 81,29 | 83,87 | 83,23 |
Horse | (23, 2, 368) | 85,33 | 85,87 | 81,25 | 85,33 |
Ionosphere | (35, 2, 351) | 89,17 | 92,02 | 93,73 | 93,45 |
Iris | (5, 3, 150) | 94,67 | 94,67 | 94,00 | 93,33 |
Labor | (17, 2, 57) | 78,95 | 84,21 | 89,47 | 84,21 |
Led7 | (8, 10, 3200) | 73,34 | 73,66 | 73,34 | 73,06 |
Lymphography | (19, 4, 148) | 77,03 | 79,05 | 85,14 | 82,43 |
Pima | (9, 2, 768) | 74,35 | 76,69 | 73,44 | 77,60 |
Sonar | (61, 2, 208) | 78,85 | 78,85 | 84,62 | 85,58 |
Tic-tac-toe | (10, 2, 958) | 83,72 | 93,84 | 98,54 | 95,82 |
Vehicle | (19, 4, 846) | 71,04 | 74,11 | 78,25 | 74,94 |
Waveform | (22, 3, 5000) | 76,44 | 83,30 | 83,90 | 84,04 |
Wine | (14, 3, 178) | 94,38 | 96,07 | 97,75 | 97,75 |
Zoo | (17, 7, 101) | 93,07 | 93,07 | 95,05 | 97,03 |