Megtanulom a döntési fákat, és úgy érzem, hogy eddig megértettem őket és a mögöttük lévő matematikát nagyon jól, kivéve egy dolgot: az erősítési arányt.
Mint megértettem, az erősítési arányt azért hajtják végre, hogy megbüntessék azokat a funkciókat, amelyek SOK lehetséges értéket vehetnek fel.
Ha egy funkció sok lehetséges értéket vesz fel, akkor hihetővé válik, hogy ha felosztjuk ezt a tulajdonságot, akkor lehetnek olyan értékek, amelyek csak egyetlen osztályra mutatnak, hanem egyszerűen azért, mert csak 1 vagy 2 adat van pontot ezzel a tulajdonsággal mindenképp.
Más szavakkal, az egyetlen ok, amiért alacsony entrópiát kapnánk a funkció felosztása miatt, az az, hogy a szolgáltatás sok értéket vehet fel, és ezért sok ilyen érték kifejezetten egyetlen címkére mutat . Tehát a döntési fa algoritmusunk végül az “ID #” -re hasonlít, és tévesen kiszámítja, hogy csak óriási információnk volt.
Ez azonban csak problémának tűnik, mert az “ID #” egy olyan funkció, amelyet nem szabad kezdetben szétválasztanunk. Úgy értem, ha lenne még egy olyan funkciónk, amely szintén nagyon sok lehetőséget értékek, de ezek az értékek valójában NEM jelentenek valamilyen címkét az adatpont számára, akkor az erősítés arányának alkalmazása nem azt jelentené, hogy valójában elrontanánk a döntési fánkat azzal, hogy megbüntetjük a valójában nagyon jó elosztást rengeteg információnyereséggel?
Nem jobb, ha csak azonosítjuk, hogy melyik funkciónak semmi köze a címkézéshez, MIELŐTT betanítjuk az edzés adatait az algoritmusba?
IDK, csak nem megértem, miért lenne igazán hasznos az erősítési arány …
Válasz
Ugyanaz a kétségem volt, amikor a Mesteremet csináltam Először is, nem tartalmaz olyan véletlenszerű dolgot, mint az “azonosítók”. Itt jön be az adatfeldolgozás. Vegyünk egy olyan adatkészletet, amely a felhasználókat és a filmek műfaji preferenciáit olyan változók alapján jeleníti meg, mint a nem, az életkor csoportja, a minősítés, a bla, a bla. Az információszerzés segítségével felosztja a „Nem “(feltételezve, hogy a legmagasabb információnyereséggel rendelkezik), és most a” Korcsoport “és az” Értékelés “változók ugyanolyan fontosak lehetnek, és a nyereségarány segítségével egy változót különálló értékekkel büntet, amelyek segítenek eldönteni a ossza fel a következő szintre.
Megjegyzések
- OKaaaay, Félelmetes! Tehát csak akkor használunk erősítési arányt, ha két különböző lehetséges funkció megosztása között vagyunk ! Annak érdekében, hogy kiválasszuk azt, amelyiknél valószínűbb, hogy a tesztadatok korábban látott értékkel bírjanak, mert ez az a hangulat, amelyet az ID példából kaptam, annak a rossz felosztásnak az oka, hogy ilyen nagy esélye volt különböző értékeken (ebben az esetben senki másnak nem lesz azonos azonosítója).
- Ez ALOT-nak sokkal értelmesebb . Minden magyarázat, amelyet ' olvastam, azonosítókat használ, és folyamatosan arra gondol, hogy valakinek miért van ez egy adathalmazban? !!!! Köszi Danny! Tetszik a bejegyzésem ', de nekem még ' nincs elég hírnevem.
Válasz
Az információszerzés az egyik heurisztika, amely segít kiválasztani a kiválasztandó attribútumokat.
Amint ismeri a döntési fákat, egy felépített teteje -rekurzív megosztani és meghódítani mód. A példák rekurzívan vannak felosztva a kiválasztott attribútumok alapján.
Az ID3 algoritmusokban a legnagyobb információnyereséggel rendelkező attribútumok kiválasztását használjuk.
Legyen $ p_i $ annak a valószínűsége, hogy a $ D $ egy tetszőleges tuple a $ C_i $ osztályba tartozik. Tehát $ p_i = | C_ {i, d} | / | D | $ Várható információk (entrópia) szükségesek ahhoz, hogy egy duplát a $ D $ $$ Info (D) = – \ sum_ {i = 1} ^ {m} {p_i * \ log (p_i)} $$
A D osztályozásához szükséges információ (miután az A-t használták a D v-részekre osztására): $$ Info_A (D) = – \ sum_ {j = 1} ^ {v} {D_j / D * Info_j (D)} $$
Az A attribútum elágazásával nyert információk
$$ Gain (A) = Info (D) – Info_A (D) $$
A C4.5 algoritmusban el kell osztanunk az információkülönbséget $ SplitInfo (A) $
$$ Nyereség (A) = (Info (D) – Info_A (D)) / SplitInfo (A) $$