Anslut dig till vÄrt nÀtverk!

AI 101

Vad Àr ett beslutstrÀd?

mm

Vad Àr ett beslutstrÀd?

A beslutstrÀd Àr en anvÀndbar maskininlÀrningsalgoritm som anvÀnds för bÄde regressions- och klassificeringsuppgifter. Namnet "beslutstrÀd" kommer frÄn det faktum att algoritmen fortsÀtter att dela upp datasetet i mindre och mindre delar tills data har delats upp i enstaka instanser, som sedan klassificeras. Om du skulle visualisera resultatet av algoritmen, skulle sÀttet som kategorierna Àr uppdelade pÄ likna ett trÀd och mÄnga löv.

Det Àr en snabb definition av ett beslutstrÀd, men lÄt oss ta en djupdykning i hur beslutstrÀd fungerar. Att ha en bÀttre förstÄelse för hur beslutstrÀd fungerar, sÄvÀl som deras anvÀndningsfall, hjÀlper dig att veta nÀr du ska anvÀnda dem under dina maskininlÀrningsprojekt.

Format för ett beslutstrÀd

Ett beslutstrÀd Àr mycket som ett flödesschema. För att anvÀnda ett flödesschema börjar du vid startpunkten, eller roten, av diagrammet och baserat pÄ hur du svarar pÄ filtreringskriterierna för den startnoden flyttar du till en av nÀsta möjliga noder. Denna process upprepas tills ett slut uppnÄs.

BeslutstrÀd fungerar pÄ i huvudsak samma sÀtt, dÀr varje intern nod i trÀdet Àr nÄgon sorts test-/filtreringskriterier. Noderna pÄ utsidan, trÀdets Àndpunkter, Àr etiketterna för den aktuella datapunkten och de kallas "blad". Grenarna som leder frÄn de interna noderna till nÀsta nod Àr funktioner eller konjunktioner av funktioner. Reglerna som anvÀnds för att klassificera datapunkterna Àr vÀgarna som gÄr frÄn roten till bladen.

Algoritmer för beslutstrÀd

BeslutstrÀd fungerar pÄ ett algoritmiskt sÀtt som delar upp datasetet i individuella datapunkter baserat pÄ olika kriterier. Dessa uppdelningar görs med olika variabler, eller de olika funktionerna i datamÀngden. Till exempel, om mÄlet Àr att avgöra om en hund eller katt beskrivs av inmatningsfunktionerna eller inte, kan variabler som data delas pÄ vara saker som "klor" och "skÀller".

SĂ„ vilka algoritmer anvĂ€nds för att faktiskt dela upp data i grenar och blad? Det finns olika metoder som kan anvĂ€ndas för att dela upp ett trĂ€d, men den vanligaste metoden att klyva Ă€r förmodligen en teknik som kallas "rekursiv binĂ€r split”. NĂ€r du utför denna uppdelningsmetod börjar processen vid roten och antalet funktioner i datasetet representerar det möjliga antalet möjliga uppdelningar. En funktion anvĂ€nds för att bestĂ€mma hur mycket noggrannhet varje möjlig uppdelning kommer att kosta, och uppdelningen görs med de kriterier som offrar minst noggrannhet. Denna process genomförs rekursivt och undergrupper bildas med samma allmĂ€nna strategi.

För att bestÀmma kostnaden för uppdelningen anvÀnds en kostnadsfunktion. En annan kostnadsfunktion anvÀnds för regressionsuppgifter och klassificeringsuppgifter. MÄlet med bÄda kostnadsfunktionerna Àr att bestÀmma vilka grenar som har de mest lika svarsvÀrdena, eller de mest homogena grenarna. TÀnk pÄ att du vill att testdata för en viss klass ska följa vissa vÀgar och det Àr intuitivt vettigt.

NÀr det gÀller regressionskostnadsfunktionen för rekursiv binÀr split, Àr algoritmen som anvÀnds för att berÀkna kostnaden enligt följande:

summa(y – förutsĂ€gelse)^2

FörutsÀgelsen för en viss grupp av datapunkter Àr medelvÀrdet av svaren frÄn trÀningsdata för den gruppen. Alla datapunkter körs genom kostnadsfunktionen för att bestÀmma kostnaden för alla möjliga uppdelningar och uppdelningen med den lÀgsta kostnaden vÀljs.

NÀr det gÀller kostnadsfunktionen för klassificering Àr funktionen följande:

G = summa(pk * (1 – pk))

Detta Àr Gini-poÀngen, och det Àr ett mÄtt pÄ effektiviteten av en splittring, baserat pÄ hur mÄnga instanser av olika klasser som finns i grupperna som Àr resultatet av splittringen. Med andra ord, det kvantifierar hur blandade grupperna Àr efter splittringen. En optimal split Àr nÀr alla grupper som resulterar frÄn uppdelningen endast bestÄr av indata frÄn en klass. Om en optimal split har skapats kommer "pk"-vÀrdet att vara antingen 0 eller 1 och G kommer att vara lika med noll. Du kanske kan gissa att den vÀrsta uppdelningen Àr en dÀr det finns en 50-50 representation av klasserna i uppdelningen, nÀr det gÀller binÀr klassificering. I det hÀr fallet skulle "pk"-vÀrdet vara 0.5 och G skulle ocksÄ vara 0.5.

Uppdelningsprocessen avslutas nÀr alla datapunkter har förvandlats till löv och klassificerats. Men du kanske vill stoppa tillvÀxten av trÀdet tidigt. Stora komplexa trÀd Àr benÀgna att överanpassa, men flera olika metoder kan anvÀndas för att bekÀmpa detta. En metod för att minska övermontering Àr att ange ett minsta antal datapunkter som kommer att anvÀndas för att skapa ett löv. En annan metod att kontrollera för överanpassning Àr att begrÀnsa trÀdet till ett visst maximalt djup, vilket styr hur lÀnge en stig kan strÀcka sig frÄn roten till ett löv.

En annan process involverad i skapandet av beslutstrÀd Àr beskÀrning. BeskÀrning kan hjÀlpa till att öka prestandan hos ett beslutstrÀd genom att ta bort grenar som innehÄller funktioner som har liten prediktiv kraft/liten betydelse för modellen. PÄ sÄ sÀtt minskar trÀdets komplexitet, det blir mindre sannolikt att det överpassar och modellens prediktiva anvÀndbarhet ökar.

Vid beskĂ€rning kan processen starta antingen i toppen av trĂ€det eller i botten av trĂ€det. Den enklaste metoden för beskĂ€rning Ă€r dock att börja med bladen och försöka tappa noden som innehĂ„ller den vanligaste klassen inom det bladet. Om modellens noggrannhet inte försĂ€mras nĂ€r detta görs, sĂ„ bevaras förĂ€ndringen. Det finns andra tekniker som anvĂ€nds för att utföra beskĂ€rning, men metoden som beskrivs ovan – reducerad felbeskĂ€rning – Ă€r förmodligen den vanligaste metoden för beslutstrĂ€dsbeskĂ€rning.

ÖvervĂ€ganden för att anvĂ€nda beslutstrĂ€d

Besluts trÀd Àr ofta anvÀndbara nÀr klassificering behöver utföras men berÀkningstiden Àr en stor begrÀnsning. BeslutstrÀd kan göra det tydligt vilka funktioner i de valda datamÀngderna som har den mest prediktiva kraften. Dessutom, till skillnad frÄn mÄnga maskininlÀrningsalgoritmer dÀr reglerna som anvÀnds för att klassificera data kan vara svÄra att tolka, kan beslutstrÀd göra tolkningsbara regler. BeslutstrÀd kan ocksÄ anvÀnda sig av bÄde kategoriska och kontinuerliga variabler vilket gör att mindre förbearbetning behövs, jÀmfört med algoritmer som bara kan hantera en av dessa variabeltyper.

BeslutstrÀd tenderar att inte fungera sÀrskilt bra nÀr de anvÀnds för att bestÀmma vÀrdena för kontinuerliga attribut. En annan begrÀnsning av beslutstrÀd Àr att nÀr man gör klassificering, om det finns fÄ trÀningsexempel men mÄnga klasser tenderar beslutstrÀdet att vara felaktigt.

Bloggare och programmerare med specialiteter inom MaskininlÀrning och Deep Learning Àmnen. Daniel hoppas kunna hjÀlpa andra att anvÀnda kraften i AI för socialt bÀsta.