Lēmumu koka klasifikācija

klasifikācija
lēmumu koks
prognozēšanas modelis
Lēmumu koka klasifikācija cover image

Ievads

Lēmumu koki (DT) ir neparametriska uzraudzīta mācību metode, ko izmanto klasifikācijai un regresijai. Mērķis ir izveidot modeli, kas prognozē mērķa mainīgā vērtību, apgūstot vienkāršus lēmumu pieņemšanas noteikumus, kas izriet no datu iezīmēm.

Entropija

Apmācības mērķis ir atrast labākos sadalījumus mezglos, lai atrastu optimālāko koku. Sadalīšana tiek veikta, izmantojot dažus kritērijus, piemēram: Entropija.

Ir daudz entropijas definīciju, piemēram:

  • Entropija atbilst informācijas apjomam, ko satur informācijas avots.

  • Entropiju var uzskatīt arī par nejaušību vai pārsteiguma mērīšanu komplektā.

  • Entropija ir metrika, kas mēra sistēmas neparedzamību vai piemaisījumu.

entropy

Lēmumu kokos entropiju uzskatīsim par mezgla iekšpuses tīrības mēru. Lēmumu koka modeļa mērķis ir samazināt mezglu entropiju katrā sadalījumā:

entropy_reductioin

Tādējādi mēs vēlamies palielināt atšķirību starp vecākmezgla entropiju un pakārtoto mezglu entropiju. Šo atšķirību sauc par Informācijas pieaugumu.

Kopas XX entropija HH ir matemātiski formulēta šādi:

H(X)=_xXp(x)logp(x)H(X) = - \sum\limits\_{x \in X} p(x) \log p(x)

Informācijas iegūšana

Informācijas ieguvums ir atšķirība starp sākotnējā mezgla entropiju un chlid mezglu entropiju svērto summu, un tādējādi to var formulēt šādi:

IG(Y,X)=H(Y)xunique(X)P(xX)×H(YX=x)IG(Y, X) = H(Y) - \sum_{x \in unique(X)} P(x|X) \times H(Y | X = x)

=H(Y)xunique(X)X.count(x)len(X)×H(Y[X==x])= H(Y) - \sum_{x \in unique(X)} \frac{X.count(x)}{len(X)} \times H(Y[X == x])

kur:

  • H(.)H(.) ir entropija.

  • YY ir populācija pirms sadalīšanas, tā apzīmē vecāku mezglu.

  • XX ir mainīgais, ko mēs vēlamies izmantot sadalīšanai.

  • xx ir unikāla X vērtība.

  • Y[X==x]Y[X==x] ir sadalīts saraksts ar tikai xx vērtībām.

ņemsim atbilstošu piemēru:

entropy_reductioin

Mēs aprēķināsim informācijas pieaugumu, sadalot vecāku mezglu, izmantojot X vērtības:

IG(parent,X)=H(parent)xunique(X)P(xX)×H(parentX=x)IG(parent, X) = H(parent) - \sum_{x \in unique(X)} P(x|X) \times H(parent | X = x)

\

Pirmkārt, mēs aprēķinām vecākmezgla entropiju:

H(parent)=P(Y=Blue)×logP(Y=Blue)P(Y=Yellow)×logP(Y=Yellow)H(parent) = - P(Y=Blue) \times \log P(Y=Blue) - P(Y=Yellow) \times \log P(Y=Yellow)

=1121×log(1121)1021×log(1021)=0.3= - \frac{11}{21} \times \log(\frac{11}{21}) - \frac{10}{21} \times \log(\frac{10}{21}) = 0.3

\

Pēc tam mēs aprēķināsim katra bērna mezgla iekšējo varbūtību pēc sadalīšanas, izmantojot unikālās X vērtības:

unique(X)=[Circle,Square]unique(X) = [Circle, Square]

_xunique(X)P(xX)×H(YX=x)=P(SquareX)×H(YX=Square)\sum\_{x \in unique(X)} P(x|X) \times H(Y | X = x) = P(Square|X) \times H(Y | X = Square)

+P(CircleX)×H(YX=Circle)+ P(Circle|X) \times H(Y | X = Circle)

=921×H(YX=Square)+1221×H(YX=Circle)= \frac{9}{21} \times H(Y | X = Square) + \frac{12}{21} \times H(Y | X = Circle)

Piemēram:

  • H(YX=kvadraˉts)H(Y | X = kvadrāts) : attēlo pirmā atvasinātā mezgla entropiju.

  • H(YX=Circle)H(Y | X = Circle) : attēlo otrā pakārtotā mezgla entropiju.

\

Mēs sākam ar pirmo bērna mezglu:

H(YX=Square)=P(Y=BlueX=Square)×logP(Y=BlueX=Square)H(Y | X = Square) = - P(Y=Blue | X = Square) \times \log P(Y=Blue| X = Square)

P(Y=YellowX=Square)×logP(Y=YellowX=Square)- P(Y=Yellow| X = Square) \times \log P(Y=Yellow| X = Square)

=79×log7929×log29=0.23= - \frac{7}{9} \times \log\frac{7}{9} - \frac{2}{9} \times \log\frac{2}{9} = 0.23

\

Un tad otrais bērna mezgls:

H(YX=Circle)=P(Y=BlueX=Circle)×logP(Y=BlueX=Circle)H(Y | X = Circle) = - P(Y=Blue | X = Circle) \times \log P(Y=Blue| X = Circle)

P(Y=YellowX=Circle)×logP(Y=YellowX=Circle)- P(Y=Yellow| X = Circle) \times \log P(Y=Yellow| X = Circle)

=412×log412812×log812=0.28= - \frac{4}{12} \times \log\frac{4}{12} - \frac{8}{12} \times \log\frac{8}{12} = 0.28

\

Visbeidzot, informācijas iegūšanas formulā mēs aizstājam entropijas:

IG(parent,X)=H(parent)xunique(X)P(xX)×H(parentX=x)IG(parent, X) = H(parent) - \sum_{x \in unique(X)} P(x|X) \times H(parent | X = x)

=0.3921×0.231221×0.28=0.041= 0.3 - \frac{9}{21} \times 0.23 - \frac{12}{21} \times 0.28 = 0.041

\

\

Kā minēts iepriekš, mezgla sadalīšanas mērķis ir maksimāli palielināt informācijas ieguvi un tādējādi samazināt entropiju iegūtajā bērnu mezglā. Lai to izdarītu, mums ir jāmēģina sadalīt mezglu ar dažādām ievades kopām X1,X2,,XnX_1, X_2, \ldots, Xn, un mēs saglabājam tikai sadalījumu, kas palielina informācijas ieguvi:

X\*=argmaxXiIG(Y,Xi)X^{\*} = \underset{X_i}{\operatorname{argmax}} IG(Y, X_i)

Kad pārtraukt šķelšanos

Mezgla sadalīšana lēmumu kokos ir rekursīva, tāpēc ir jābūt kritērijiem, kurus mēs varam izmantot, lai pārtrauktu sadalīšanu. Šie ir daži no visvairāk ieviestajiem kritērijiem:

  • Kad mezgls ir tīrs: H(mezgls) = 0. Nav jēgas tālāk sadalīt mezglu.

  • Maksimālais dziļuma skaits: Mēs varam iestatīt maksimālo dziļumu, ko modelis var sasniegt, tas nozīmē, ka pat tad, ja mezgls nav tīrs, sadalīšana tiek apturēta.

  • Minimālais paraugu skaits mezglā: Mēs varam arī iestatīt minimālo paraugu skaitu NN vienam mezglam. Ja paraugu skaits vienā mezglā ir vienāds ar NN, mēs pārtraucam sadalīšanu pat tad, ja mezgls nav tīrs.

Apmācības beigās (sadalīšana) katrs mezgls, kas balstās uz lēmumu koka beigām, tiek saukts par "lapu", jo tā nav neviena apakškoka sakne. Katra lapa pārstāvēs ražas klasi ar visvairāk paraugu.

Secinājums

Lēmumu koks ir viens no slavenākajiem mašīnmācīšanās algoritmiem, pateicoties tā efektivitātei, intuitīvajam fonam un vienkāršai ieviešanai. Šo algoritmu var izmantot arī ar skaitliski neatkarīgiem mainīgajiem ( Gausa lēmumu koks ), un to var paplašināt, lai atrisinātu arī regresijas uzdevumus.


Career Services background pattern

Karjeras pakalpojumi

Contact Section background image

Sazināsimies

Code Labs Academy © 2024 Visas tiesības paturētas.