Az információnyereség, akárcsak a Gini impurity, a döntési fák képzéséhez használt metrika. Pontosabban ezek a metrikák a felosztás minőségét mérik. Tegyük fel például, hogy a következő adatokkal rendelkezünk:
Mi lenne, ha x=1,5x = 1,5x=1,5-nél végeznénk egy osztást?
Ez a tökéletlen osztás az alábbi ágakra bontja az adathalmazunkat:
- Baloldali ág, 4 kékkel.
- Jobb oldali ág, 1 kékkel és 5 zölddel.
Látható, hogy ez a felosztás nem optimális, de mennyire jó? Hogyan tudjuk számszerűsíteni egy felosztás minőségét?
Itt jön a képbe az információnyereség.
Ez zavaros? Nem tudja, hogy mik azok a döntési fák, vagy hogyan képzik őket? Olvassa el a Random Forests és Decision Trees bevezetőm elejét.
Információs entrópia
Mielőtt rátérnénk az információnyereségre, először az információs entrópiáról kell beszélnünk. A döntési fák képzésével összefüggésben az entrópiát nagyjából úgy lehet elképzelni, hogy mekkora az adatok szórása. Például:
- Egy csak kékeket tartalmazó adathalmaz nagyon alacsony (valójában nulla) entrópiával rendelkezik.
- Egy vegyesen kékeket, zöldeket és vöröseket tartalmazó adathalmaz viszonylag magas entrópiával rendelkezik.
Íme, hogyan számítjuk ki az információs entrópiát egy CCC osztályokat tartalmazó adathalmazra:
E=-∑iCpilog2piE = -\sum_i^C p_i \log_2 p_iE=-i∑Cpilog2pi
ahol pip_ipi a iii osztályba tartozó elem véletlenszerű kiválasztásának valószínűsége (i.azaz az adathalmaznak az iii. osztályból álló aránya).
Ezt legegyszerűbben egy példán keresztül érthetjük meg. Tekintsünk egy adathalmazt, amelyben 1 kék, 2 zöld és 3 piros van: . Ekkor
E=-(pblog2pb+pglog2pg+prlog2pr)E = -(p_b \log_2 p_b + p_g \log_2 p_g + p_r \log_2 p_r)E=-(pblog2pb+pglog2pg+prlog2pr) E=-(16log2(16)+26log2(26)+36log2(36))=1.46\begin{aligned}E &= -(\frac{1}{6} \log_2(\frac{1}{6}) + \frac{2}{6} \log_2(\frac{2}{6}) + \frac{3}{6} \log_2(\frac{3}{6})) \\\&= \boxed{1.46} \\\\end{aligned}E=-(61log2(61)+62log2(62)+63log2(63))=1.46
Mi a helyzet egy egyszínű adathalmazzal? Vegyünk példaként 3 kék színt: . Az entrópia lenne
E=-(1log21)=0E = -(1 \log_2 1) = \boxed{0}E=-(1log21)=0
Információnyereség
Végre itt az ideje, hogy válaszoljunk a korábban feltett kérdésre: hogyan tudjuk számszerűsíteni egy felosztás minőségét?
Mondjuk el újra ezt a felosztást:
A felosztás előtt 5 kék és 5 zöld volt, tehát az entrópia
Ebefore=-(0.5log20.5+0.5log20.5)=1\begin{aligned}E_{before} &= -(0,5 \log_2 0,5 + 0,5 \log_2 0,5) \\&= \boxed{1} \\\\end{aligned}Ebefore=-(0.5log20.5+0.5log20.5)=1
A felosztás után két águnk van.
A baloldali ágban 4 kék van, tehát Eleft=0E_{left} = \boxed{0}Eleft=0, mert ez egy egyszínű adathalmaz.
A jobboldali ágban 1 kék és 5 zöld van, tehát
Eright=-(16log2(16)+56log2(56))=0.65\begin{aligned}E_{right}E_{right} &= -(\frac{1}{6} \log_2 (\frac{1}{6}) + \frac{5}{6} \log_2 (\frac{5}{6})) \\\&= \boxed{0.65} \\\\end{aligned}Eright=-(61log2(61)+65log2(65))=0.65
Most, hogy megvan mindkét ág entrópiája, meg tudjuk határozni a felosztás minőségét úgy, hogy az egyes ágak entrópiáját súlyozzuk azzal, hogy hány eleme van. Mivel a bal ágnak 4 eleme van, a jobb ágnak pedig 6, ezért súlyozzuk őket 0,40,40,4, illetve 0,60,60,6 elemmel:
E_{split=0,4∗0+0,6∗0,65=0,39\begin{aligned}E_{split} &= 0,4 * 0 + 0,6 * 0,65 \\&= \boxed{0,39} \\\\end{aligned}Esplit=0.4∗0+0.6∗0.65=0.39
Ebefore=1E_{before} = 1Ebefore=1 entrópiával kezdtük a felosztás előtt és most már 0.390.390.39! Információnyereség = mennyi entrópiát távolítottunk el, tehát
Gain=1-0,39=0,61\text{Gain} = 1 – 0,39 = \boxed{0,61}Gain=1-0,39=0,61
Ez logikus: nagyobb információnyereség = több entrópia eltávolítása, amit szeretnénk. Tökéletes esetben minden ág csak egy színt tartalmazna az osztás után, ami nulla entrópiát jelentene!
Összegzés
Az információs entrópiára úgy gondolhatunk, hogy mennyire kiszámíthatatlan egy adathalmaz.
- A csak egy osztályból álló halmaz (mondjuk kék ) rendkívül kiszámítható: minden benne lévő kék. Ennek alacsony entrópiája lenne.
- Egy sok vegyes osztályból álló halmaz kiszámíthatatlan: egy adott elem bármilyen színű lehet! Ennek magas entrópiája lenne.
Az információs entrópia kiszámításának tényleges képlete:
E=-∑iCpilog2piE = -\sum_i^C p_i \log_2 p_iE=-i∑Cpilog2pi
Az információnyereséget egy felosztáshoz úgy számítjuk ki, hogy az eredeti entrópiából kivonjuk az egyes ágak súlyozott entrópiáit. Amikor egy döntési fát képezünk ezen metrikák segítségével, a legjobb felosztást az információnyereség maximalizálásával választjuk ki.
Még többet szeretne megtudni? Nézze meg a Gini Impurity, egy hasonló metrika magyarázatát, vagy a Random Forests for Complete Beginners című részletes útmutatómat.