Učím se o rozhodovacích stromech a mám pocit, že až dosud jsem jim rozuměl a matematice za nimi docela dobře, až na jednu věc: poměr zesílení.
Jak jsem pochopil, poměr zesílení je implementován za účelem potrestání funkcí, které mohou nabývat MNOHO možných hodnot.
Pokud funkce nabývá mnoha možných hodnot, je pravděpodobné, že pokud se na této funkci rozdělíme, mohou existovat hodnoty, které ukazují pouze na jednu třídu, ale jednoduše proto, že existují pouze 1 nebo 2 data body s touto hodnotou pro danou funkci.
Jinými slovy, jediným důvodem, proč bychom při rozdělení na tuto vlastnost získali nízkou entropii, je skutečnost, že tato funkce může mít mnoho hodnot, a proto mnoho z těchto hodnot konkrétně odkazovalo na jeden štítek . Náš algoritmus rozhodovacího stromu by tedy skončil rozdělením na něco jako „ID #“ a nesprávně by vypočítal, že jsme právě měli OBROVSKÝ zisk informací.
Zdá se to však jen jako problém, protože „ID #“ je funkce, na kterou bychom se neměli rozdělit. Chci říct, kdybychom měli jinou funkci, která také převzala mnoho možných hodnoty, ale každá z těchto hodnot ve skutečnosti DID implikuje nějaký štítek pro tento datový bod, pak by použití poměru zisku neznamenalo, že ve skutečnosti pokazíme náš rozhodovací strom tím, že potrestáme to, co bylo ve skutečnosti velmi dobré rozdělení s množstvím informací?
Není lepší jen určit, která funkce nebude mít nic společného s naším označováním PŘED tím, než do algoritmu vložíme tréninková data?
IDK, prostě ne podívejte se, proč by byl poměr zisku opravdu užitečný …
Odpověď
Měl jsem stejné pochybnosti, když jsem dělal svého Mistra „Titul. Nejprve nezahrňte něco tak náhodného jako„ ID “. Tady přichází na řadu předzpracování dat. Vezměme si datovou sadu, která obsahuje uživatele a jejich předvolby žánrů filmů na základě proměnných, jako je pohlaví, skupina věku, hodnocení, bla, bla. S pomocí získávání informací se rozdělíte na „Gender“ „(za předpokladu, že má nejvyšší informační zisk) a nyní mohou být proměnné„ Group of Age “a„ Rating “stejně důležité a pomocí poměru zisku bude penalizovat proměnnou s výraznějšími hodnotami, které nám pomohou rozhodnout rozdělit na další úroveň.
Komentáře
- OKaaaay, úžasné! Poměr zisku tedy používáme, pouze když jsme mezi rozdělením na dvě různé možné funkce ! Je to v pořadí vybrat ten, který je pravděpodobnější, že testovací data mají dříve viděnou hodnotu, protože to je atmosféra, kterou jsem dostal z příkladu ID, důvod, proč je to špatné rozdělení, měl tak vysokou šanci na různých hodnotách (v tomto případě žádná jiná osoba nebude mít stejné ID).
- To DÁVÁ VELMI smysl . Každé vysvětlení, které jsem ' četl, používá ID a stále mě nutí přemýšlet o tom, proč to má vůbec někdo v datové sadě? !!!! Díky Danny! Váš příspěvek se mi ' líbí, ale zatím ' nemám dostatečnou reputaci.
Odpověď
Zisk informací je jednou z heuristik, které pomáhají vybrat atributy pro výběr.
Jak víte, rozhodovací stromy jsou konstruovány nahoře – dolů rekurzivní způsob rozděl a panuj. Příklady jsou děleny rekurzivně na základě vybraných atributů.
V algoritmech ID3 používáme výběr atributů s největším ziskem informací.
Nechť $ p_i $ je pravděpodobnost, že libovolná n-tice v $ D $ patří do třídy $ C_i $ . Takže $ p_i = | C_ {i, d} | / | D | $ Očekávané informace (entropie) potřebné k zařazení n-tice do $ D $ $$ Info (D) = – \ sum_ {i = 1} ^ {m} {p_i * \ log (p_i)} $$
Potřebné informace (po použití A k rozdělení D na v části) ke klasifikaci D: $$ Info_A (D) = – \ sum_ {j = 1} ^ {v} {D_j / D * Info_j (D)} $$
Informace získané větvením na atributu A
$$ Gain (A) = Info (D) – Info_A (D) $$
V algoritmu C4.5 musíme rozdělit rozdíl informací o $ SplitInfo (A) $
$$ Gain (A) = (Info (D) – Info_A (D)) / SplitInfo (A) $$