Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Splitsen van de Knooppunten | Beslisboom
Classificatie met Python

Het Splitsen van de Knooppunten

Veeg om het menu te tonen

Tijdens het trainen moeten we de beste splitsing bij elke beslissingsknoop vinden. Wanneer we de data splitsen in twee knopen, streven we ernaar dat verschillende klassen in aparte knopen terechtkomen.

goodbadsplit
  • Beste scenario: alle datapunten in een knoop behoren tot dezelfde klasse;
  • Slechtste scenario: een gelijk aantal datapunten voor elke klasse.

Gini-onzuiverheid

Om te meten hoe goed een splitsing is, kunnen we de Gini-onzuiverheid berekenen. Dit is de kans dat als we willekeurig twee punten uit een knoop nemen (met teruglegging), deze van verschillende klassen zijn. Hoe lager deze kans (onzuiverheid), hoe beter de splitsing.

ginis

Je kunt de Gini-onzuiverheid voor binaire classificatie berekenen met de volgende formule:

gini=1p02p12=1(m0m)2(m1m)2\text{gini} = 1 - p_0^2 - p_1^2 = 1 - (\frac{m_0}{m})^2 - (\frac{m_1}{m})^2

Waarbij

  • mim_i - aantal instanties van klasse ii in een knoop;
  • mm - aantal instanties in een knoop;
  • pi=mimp_i = \frac{m_i}{m} - kans om klasse ii te kiezen.

En voor multiclass-classificatie is de formule:

gini=1i=0Cpi2=1i=0C(mim)2\text{gini} = 1 - \sum_{i=0}^C p_i^2 = 1 - \sum_{i=0}^C(\frac{m_i}{m})^2

Waarbij

  • CC - aantal klassen.

De kwaliteit van de splitsing kan worden gemeten door de gewogen som van Gini-scores voor beide knopen verkregen uit een splitsing. Dit is de waarde die we willen minimaliseren.

Om een beslissingsknoop te splitsen, moeten we een kenmerk en een drempelwaarde vinden om op te splitsen:

kenmerk drempelwaarde

Bij een beslissingsknoop zoekt het algoritme gretig de beste drempelwaarde voor elk kenmerk. Vervolgens kiest het de splitsing met de laagste Gini-onzuiverheid van alle kenmerken (bij een gelijke stand wordt willekeurig gekozen).

SplitSearch2

Entropie

De entropie is een andere maat voor de onzuiverheid. Voor een binair classificatieprobleem wordt de entropie HH van een knoop berekend met de formule:

H(p)=plog2(p)(1p)log2(1p)H(p) = -p \log_2(p) - (1 - p) \log_2(1 - p)

waarbij:

  • pp het aandeel positieve voorbeelden (klasse 1) is;
  • 1p1 - p het aandeel negatieve voorbeelden (klasse 0) is.

Voor een multiclass-classificatieprobleem wordt de entropie HH van een knoop berekend met de formule:

H(p1,p2,,pk)=i=1kpilog2(pi)H(p_1, p_2, \dots, p_k) = -\sum_{i=1}^{k} p_i \log_2(p_i)

waarbij:

  • kk het aantal klassen is;
  • pip_i het aandeel voorbeelden behorend tot klasse ii in de knoop is.

Net als bij Gini-onzuiverheid kunnen we beoordelen hoe goed een splitsing is door de gewogen som van entropiewaarden voor de kindknopen die uit de splitsing voortkomen te berekenen. Dit is de waarde die we willen minimaliseren om de informatieopbrengst te maximaliseren.

Note
Opmerking

De entropie is maximaal wanneer alle klassen gelijk vertegenwoordigd zijn. De entropie is minimaal (0) wanneer alle voorbeelden tot één klasse behoren (pure knoop).

question mark

Kies een betere splitsing.

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 2
some-alt