Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Uppdelning av Noderna | Beslutsträd
Klassificering med Python

bookUppdelning av Noderna

Under träningen behöver vi hitta bästa uppdelningen vid varje beslutsknut. När vi delar upp data i två noder strävar vi efter att olika klasser ska hamna i separata noder.

  • Bästa scenario: alla datapunkter i en nod tillhör samma klass;
  • Sämsta scenario: lika många datapunkter för varje klass.

Gini-orenhet

För att mäta hur bra en uppdelning är kan vi beräkna Gini-orenheten. Det är sannolikheten att om vi slumpmässigt tar två punkter från en nod (med återläggning), så tillhör de olika klasser. Ju lägre denna sannolikhet (orenhet), desto bättre är uppdelningen.

Du kan beräkna Gini-imperfektionen för binär klassificering med följande formel:

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

Där

  • mim_i - antal instanser av klass ii i en nod;
  • mm - antal instanser i en nod;
  • pi=mimp_i = \frac{m_i}{m} - sannolikheten att välja klass ii.

Och för multiklassklassificering är formeln:

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

Där

  • CC - antal klasser.

Kvaliteten på delningen kan mätas genom att ta viktad summa av Gini-värden för båda noderna som erhålls från en delning. Det är det värde som ska minimeras.

För att dela en beslutsnod behöver vi hitta en egenskap att dela på och tröskelvärdet:

Vid ett beslutsknut söker algoritmen girigt efter den bästa tröskeln för varje variabel. Därefter väljs den uppdelning med lägst Gini-orenhet bland alla variabler (vid lika resultat väljs slumpmässigt).

Entropi

Entropi är ett annat mått på orenhet. För ett binärt klassificeringsproblem beräknas entropin HH för en nod med formeln:

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

Där:

  • pp är andelen positiva exempel (klass 1);
  • 1p1 - p är andelen negativa exempel (klass 0).

För ett multiklass-klassificeringsproblem beräknas entropin HH för en nod med formeln:

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)

Där:

  • kk är antalet klasser;
  • pip_i är andelen exempel som tillhör klass ii i noden.

På liknande sätt som Gini-orenhet kan vi mäta hur bra en uppdelning är genom att beräkna viktad summa av entropivärden för barnnoderna som erhålls från uppdelningen. Detta är värdet vi vill minimera för att maximera informationsvinsten.

Note
Notering

Entropin är maximal när alla klasser är lika representerade. Den är minimal (0) när alla exempel tillhör en klass (rent nod).

question mark

Välj en bättre uppdelning.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain the difference between Gini impurity and entropy?

How do you choose between using Gini impurity and entropy in practice?

Can you show an example calculation for Gini impurity or entropy?

Awesome!

Completion rate improved to 4.17

bookUppdelning av Noderna

Svep för att visa menyn

Under träningen behöver vi hitta bästa uppdelningen vid varje beslutsknut. När vi delar upp data i två noder strävar vi efter att olika klasser ska hamna i separata noder.

  • Bästa scenario: alla datapunkter i en nod tillhör samma klass;
  • Sämsta scenario: lika många datapunkter för varje klass.

Gini-orenhet

För att mäta hur bra en uppdelning är kan vi beräkna Gini-orenheten. Det är sannolikheten att om vi slumpmässigt tar två punkter från en nod (med återläggning), så tillhör de olika klasser. Ju lägre denna sannolikhet (orenhet), desto bättre är uppdelningen.

Du kan beräkna Gini-imperfektionen för binär klassificering med följande formel:

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

Där

  • mim_i - antal instanser av klass ii i en nod;
  • mm - antal instanser i en nod;
  • pi=mimp_i = \frac{m_i}{m} - sannolikheten att välja klass ii.

Och för multiklassklassificering är formeln:

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

Där

  • CC - antal klasser.

Kvaliteten på delningen kan mätas genom att ta viktad summa av Gini-värden för båda noderna som erhålls från en delning. Det är det värde som ska minimeras.

För att dela en beslutsnod behöver vi hitta en egenskap att dela på och tröskelvärdet:

Vid ett beslutsknut söker algoritmen girigt efter den bästa tröskeln för varje variabel. Därefter väljs den uppdelning med lägst Gini-orenhet bland alla variabler (vid lika resultat väljs slumpmässigt).

Entropi

Entropi är ett annat mått på orenhet. För ett binärt klassificeringsproblem beräknas entropin HH för en nod med formeln:

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

Där:

  • pp är andelen positiva exempel (klass 1);
  • 1p1 - p är andelen negativa exempel (klass 0).

För ett multiklass-klassificeringsproblem beräknas entropin HH för en nod med formeln:

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)

Där:

  • kk är antalet klasser;
  • pip_i är andelen exempel som tillhör klass ii i noden.

På liknande sätt som Gini-orenhet kan vi mäta hur bra en uppdelning är genom att beräkna viktad summa av entropivärden för barnnoderna som erhålls från uppdelningen. Detta är värdet vi vill minimera för att maximera informationsvinsten.

Note
Notering

Entropin är maximal när alla klasser är lika representerade. Den är minimal (0) när alla exempel tillhör en klass (rent nod).

question mark

Välj en bättre uppdelning.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2
some-alt