Algoritem odločitvenega drevesa – popoln vodnik

Izvorno vozlišče: 1062812

Ta članek je bil objavljen kot del Blogathon o znanosti o podatkih

Algoritem drevesa odločanja

Doslej smo spoznali linearno regresijo, logistično regresijo, ki pa ju je bilo precej težko razumeti. Začnimo z drevesom odločanja in zagotavljam vam, da je to verjetno najlažji algoritem v strojnem učenju. Tu ni veliko matematike. Ker je zelo enostaven za uporabo in razlago, je ena izmed najbolj razširjenih in praktičnih metod, ki se uporabljajo v strojnem učenju.

vsebina

1. Kaj je drevo odločitev?

2. Primer drevesa odločanja

3. Entropija

4. Pridobitev informacij

5. Kdaj ustaviti delitev?

6. Kako prenehati s prenapetostjo?

  • največja_globina
  • min_samples_split
  • min_samples_leaf
  • max_features

7. Obrezovanje

  • Po obrezovanju
  • Predobrezovanje

8. Opombe

Kaj je drevo odločitev?

To je orodje, ki ima aplikacije na več različnih področjih. Odločitvena drevesa se lahko uporabljajo za klasifikacijske in regresijske težave. Že samo ime nakazuje, da uporablja diagram poteka, kot je drevesna struktura, za prikaz napovedi, ki izhajajo iz vrste razdelkov, ki temeljijo na funkcijah. Začne se s korenskim vozliščem in konča z odločitvijo listov.

kaj je drevo odločitev

Image 1

Preden se naučimo več o drevesih odločanja, se seznanimo z nekaterimi terminologijami.

Korenska vozlišča - To je vozlišče, ki je prisotno na začetku drevesa odločanja iz tega vozlišča, ki ga populacija začne deliti glede na različne značilnosti.

Odločitvena vozlišča - vozlišča, ki jih dobimo po razcepu korenskih vozlišč, se imenujejo Odločitveno vozlišče

Listna vozlišča - vozlišča, kjer nadaljnje deljenje ni mogoče, imenujemo listna vozlišča ali končna vozlišča

Poddrevo -tako kot se majhen del grafa imenuje podgraf, podobno se pododdelek tega drevesa odločanja imenuje poddrevo.

Obrezovanje - ni nič drugega kot zmanjšanje nekaterih vozlišč, da se prenehajo opremljati.

veja Algoritem drevesa odločanja

Image 2

Primer odločitvenega drevesa

Razumejmo drevesa odločanja s pomočjo primera.

primer podatkov

Image 3

Drevesa odločanja so obrnjena navzdol, kar pomeni, da je koren na vrhu, nato pa je ta koren razdeljen na več vozlišč. Drevesa odločanja niso nič drugega kot kup laičnih izrazov če-drugače. Preveri, ali je pogoj resničen, in če je, potem gre na naslednje vozlišče, priloženo tej odločitvi.

V spodnjem diagramu bo drevo najprej vprašalo, kakšno je vreme? Je sončno, oblačno ali deževno? Če je odgovor pritrdilen, gre na naslednjo funkcijo, ki je vlažnost in veter. Ponovno bo preveril, ali piha močan ali šibek veter, če piha šibek in deževen, se lahko oseba odpravi igrati.

Primer drevesa odločanja

Image 4

Ali ste v zgornjem diagramu poteka opazili kaj? Vidimo, da če vreme je oblačno potem se moramo igrati. Zakaj se ni več razdelil? Zakaj se je tam ustavilo?

Za odgovor na to vprašanje moramo poznati še nekaj konceptov, kot so entropija, pridobivanje informacij in Ginijev indeks. Preprosto povedano, tukaj lahko rečem, da je izhod za niz podatkov o usposabljanju vedno ja za oblačno vreme, saj tukaj ni nereda, zato nam vozla ni treba dodatno razdeliti.

Cilj strojnega učenja je zmanjšati negotovost ali motnje iz nabora podatkov, za to pa uporabimo drevesa odločanja.

Zdaj moraš razmišljati, kako naj vem, kakšno bi moralo biti korensko vozlišče? kakšno naj bo vozlišče odločanja? kdaj naj preneham deliti? Če se želite o tem odločiti, obstaja metrika, imenovana "Entropija", ki je količina negotovosti v naboru podatkov.

Entropija

Entropija ni nič drugega kot negotovost v našem naboru podatkov ali merilo motnje. Naj to poskusim razložiti s primerom.

Recimo, da imate skupino prijateljev, ki se odloči, kateri film si lahko skupaj ogledata v nedeljo. Obstajata 2 izbiri za filme, ena je "Lucy" in drugi je "Titanik" in zdaj mora vsak povedati svojo izbiro. Ko vsakdo odgovori, to vidimo "Lucy" dobi 4 glasove in "Titanic" dobi 5 glasov. Kateri film zdaj gledamo? Ali ni težko izbrati 1 film, ker sta glasova za oba filma nekoliko enaka.

Temu pravimo motnja, za oba filma je enako število glasov in ne moremo se odločiti, kateri film bi morali pogledati. Bilo bi veliko lažje, če bi glasovi za "Lucy" imeli 8, za "Titanic" pa 2. Tu bi lahko zlahka rekli, da je večina glasov za "Lucy", zato bodo vsi gledali ta film.

V drevesu odločanja je izhod večinoma "da" ali "ne"

Formula za entropijo je prikazana spodaj:

entropijski algoritem drevesa odločanja

Tukaj p+ je verjetnost pozitivnega razreda

p- je verjetnost negativnega razreda

S je podmnožica primera usposabljanja

Kako drevesa odločanja uporabljajo entropijo?

Zdaj vemo, kaj je entropija in kakšna je njena formula. Nato moramo vedeti, kako točno deluje v tem algoritmu.

Entropija v osnovi meri nečistočo vozlišča. Nečistota je stopnja naključnosti; pove, kako naključni so naši podatki. A čisti podcenjeni del pomeni, da bi morali dobiti "da", ali pa bi morali dobiti "ne".

Recimo a funkcija ima na začetku 8 "da" in 4 "ne", po prvi delitvi levo vozlišče dobi 5 'da' in 2 'ne' medtem ko desno vozlišče dobi 3 'da' in 2 'ne'.

Tukaj vidimo, da razcep ni čist, zakaj? Ker še vedno lahko vidimo nekaj negativnih razredov v obeh vozliščih. Za izdelavo odločitvenega drevesa moramo izračunati nečistočo vsakega razcepa in ko je čistost 100 %, ga naredimo kot listno vozlišče.

Za preverjanje nečistoč lastnosti 2 in 3 bomo uporabili pomoč za formulo Entropy.

funkcija 2

Vir slike: Avtor

izračun entropije

Za funkcijo 3,

funkcija 3 Algoritem drevesa odločanja

Iz samega drevesa lahko jasno vidimo, da ima levo vozlišče nizko entropijo ali večjo čistost kot desno vozlišče, saj ima levo vozlišče večje število "da" in se je tukaj enostavno odločiti.

Vedno se spomnite, da višja kot je entropija, nižja bo čistost in višja bo nečistoča.

Kot smo že omenili, je cilj strojnega učenja zmanjšati negotovost ali nečistoče v naboru podatkov, tukaj z uporabo entropije dobimo nečistoče določenega vozlišča, ne vemo, ali je starševska entropija ali entropija določenega vozlišča se je zmanjšal ali ne.

Za to prinašamo novo meritev, imenovano »Pridobitev informacij«, ki nam pove, koliko se je matična entropija zmanjšala, potem ko smo jo razdelili z neko funkcijo.

Pridobitev informacij

Pridobitev informacij meri zmanjšanje negotovosti glede na neko značilnost in je tudi odločilni dejavnik, pri katerem je treba atribut izbrati kot vozlišče odločanja ali korensko vozlišče.

pridobivanje informacij Algoritem drevesa odločanja

To je samo entropija celotnega nabora podatkov - entropija nabora podatkov z določeno funkcijo.

Da bi to bolje razumeli, si oglejmo primer:
Recimo, da ima vse naše prebivalstvo 30 primerov. Podatkovni niz predvideva, ali bo oseba šla v telovadnico ali ne. Recimo, da gre 16 ljudi v telovadnico, 14 pa jih ne

Zdaj imamo dve značilnosti, s katerimi lahko napovemo, ali bo šel v telovadnico ali ne.

Značilnost 1 je "Energija" ki ima dve vrednosti "Visoko" in "nizko"

Značilnost 2 je "Motivacija" ki ima 3 vrednosti "Brez motivacije", "Nevtralno" in "Zelo motivirano".

Poglejmo, kako bo narejeno naše drevo odločitev z uporabo teh dveh funkcij. Z zbiranjem informacij se bomo odločili, katera funkcija bi morala biti korensko vozlišče in katero funkcijo postaviti po razcepu.

lastnost 1 energije

Vir slike: Avtor

Izračunajmo entropijo:

izračunajte entropijo | Algoritem drevesa odločanja

Če želite videti tehtano povprečje entropije vsakega vozlišča, naredimo naslednje:

entropijsko tehtano povprečje

Zdaj imamo vrednost E (starš) in E (starš | energija), dobiček informacij bo:

primer pridobivanja informacij

Naša nadrejena entropija je bila blizu 0.99 in po pregledu te vrednosti pridobivanja informacij lahko rečemo, da se bo entropija nabora podatkov zmanjšala za 0.37, če za svoje korensko vozlišče nastavimo »Energijo«.

Podobno bomo to storili z drugo funkcijo »Motivacija« in izračunali njen dobiček informacij.

funkcija2 | Algoritem drevesa odločanja

Vir slike: Avtor

Izračunajmo entropijo tukaj:

značilnost 2 entropija

Če želite videti tehtano povprečje entropije vsakega vozlišča, naredimo naslednje:

utežena entropija

Zdaj imamo vrednost E (starš) in E (starš | motivacija), dobiček informacij bo:

pridobitev informacij feature2

Zdaj vidimo, da funkcija »Energija« daje večje zmanjšanje, kar je 0.37 kot funkcija »Motivacija«. Zato bomo izbrali funkcijo, ki ima največji dobiček informacij, nato pa vozlišče razdelili na podlagi te funkcije.

končno razdelitev | Algoritem drevesa odločanja
Vir slike: Avtor

V tem primeru bo »energija« naše korensko vozlišče in enako bomo storili za pod vozlišča. Tukaj lahko vidimo, da je, ko je energija "visoka", entropija nizka, zato lahko rečemo, da bo oseba zagotovo šla v telovadnico, če ima visoko energijo, kaj pa, če je energija nizka? Vozlišče bomo spet razdelili na podlagi nove funkcije, ki je "Motivacija".

Kdaj prenehati deliti?

Gotovo si to vprašanje sprašujete, kdaj prenehamo gojiti svoje drevo? Običajno imajo nabori podatkov v resničnem svetu veliko število funkcij, kar bo povzročilo veliko število razdelkov, kar pa daje ogromno drevo. Takšna drevesa potrebujejo čas za izgradnjo in lahko vodijo do preoblikovanja. To pomeni, da bo drevo zelo natančno podalo niz podatkov o usposabljanju, vendar bo slabo podalo podatke o preskusih.

S hiperparametričnim uglaševanjem tega problema se lahko lotite na številne načine. Največjo globino drevesa odločitev lahko nastavimo s pomočjo največja_globina parameter. Večja je vrednost največja_globinabolj zapleteno bo vaše drevo. Napaka pri usposabljanju se bo zmanjšala, če jo povečamo največja_globina vrednost, toda ko bodo naši preskusni podatki prišli na sliko, bomo dobili zelo slabo natančnost. Zato potrebujete vrednost, ki ne bo preveč ustrezala in ne ustreza našim podatkom, zato lahko uporabite GridSearchCV.

Drug način je določiti minimalno število vzorcev za vsako razlito. Označuje se z min_samples_split. Tu določimo najmanjše število vzorcev, potrebnih za razlitje. Za odločitev lahko na primer uporabimo najmanj 10 vzorcev. To pomeni, da če ima vozlišče manj kot 10 vzorcev, potem lahko s tem parametrom ustavimo nadaljnje deljenje tega vozlišča in ga naredimo kot listno vozlišče.

Obstaja več hiperparametrov, kot so:

min_samples_leaf - predstavlja najmanjše število vzorcev, ki morajo biti v listnem vozlišču. Bolj ko povečate število, večja je možnost prevelikega opremljanja.

max_features - pomaga nam pri odločitvi, katero število funkcij upoštevati pri iskanju najboljše razdelitve.

Če želite prebrati več o teh hiperparametrih, jih lahko preberete tukaj.

Obrezovanje

To je še ena metoda, ki nam lahko pomaga pri izogibanju prevelikemu opremljanju. Pomaga pri izboljšanju zmogljivosti drevesa z rezanjem vozlišč ali pod-vozlišč, ki niso pomembna. Odstrani veje, ki imajo zelo majhen pomen.

Za obrezovanje obstajata predvsem 2 načina:

(I) Predobrezovanje - drevo lahko prenehamo gojiti prej, kar pomeni, da lahko obrežemo/odstranimo/odrežemo vozlišče, če je majhnega pomena med rastjo drevo.

(Ii) Po obrezovanju - nekoč naš drevo je zgrajeno do globine, lahko začnemo obrezovati vozlišča glede na njihov pomen.

Endnotes

Če povzamemo, smo v tem članku spoznali drevesa odločanja. Na podlagi česa drevo razdeli vozlišča in kako se lahko ustavi prenapetost. zakaj linearna regresija ne deluje v primeru klasifikacijskih težav.

V naslednjem članku bom razložil naključne gozdove, ki so spet nova tehnika, da se izognemo pretiranemu opremljanju.
Če želite preveriti popolno izvajanje dreves odločitev, glejte moj GitHub skladišče.

Sporočite mi, če imate kakršna koli vprašanja v spodnjih komentarjih.

O Author

Sem dodiplomski študent, trenutno na zadnjem letniku, smer statistika (diplomirani statistiki) in me močno zanima na področju podatkovne znanosti, strojnega učenja in umetne inteligence. Uživam v potapljanju v podatke, da odkrijem trende in druge dragocene vpoglede v podatke. Nenehno se učim in sem motiviran za preizkušanje novih stvari.

Odprta sem za sodelovanje in delo.

Za vse dvomi in vprašanja, vas prosimo, da me kontaktirate E-pošta

Poveži se z mano naprej LinkedIn in Twitter

Mediji, prikazani v tem članku, niso v lasti Analytics Vidhya in se uporabljajo po presoji avtorja.

Viri slik

  1. Slika 1 – https://wiki.pathmind.com/decision-tree
  2. Slika 2 – https://wiki.pathmind.com/decision-tree
  3. Slika 3 – www.hackerearth.com
  4. Slika 4 – www.hackerearth.com

Vir: https://www.analyticsvidhya.com/blog/2021/08/decision-tree-algorithm/

Časovni žig:

Več od Analitika Vidhya