Calcularea câștigului pentru un arbore
În video, ai văzut cum se folosește măsura Gini pentru a determina cea mai bună împărțire a unui arbore. Acum vei calcula câștigul pentru arborele încărcat în spațiul tău de lucru.
Setul de date conține 500 de cazuri, dintre care 89 sunt cazuri de nerambursare. Aceasta a condus la un Gini de 0,292632 în nodul rădăcină. Ca un mic memento, reține că Gini al unui nod = 2 * proporția cazurilor de nerambursare din nod * proporția cazurilor fără nerambursare din nod. Aruncă o privire la cod pentru a-ți reîmprospăta memoria.
gini_root <- 2 * (89 / 500) * (411 / 500)
Vei folosi aceste măsuri Gini pentru a calcula câștigul nodurilor frunză față de nodul rădăcină. Consultă codul de mai jos pentru a înțelege cum poți folosi măsurile Gini create pentru a calcula câștigul unui nod.
Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))
Calculează Gini pentru nodul stâng și pentru nodul drept, precum și câștigul celor două noduri frunză față de nodul rădăcină. Obiectul care conține arborele este small_tree.
Acest exercițiu face parte din cursul
Modelarea riscului de credit în R
Instrucțiuni pentru exercițiu
- Calculul pentru Gini al nodului rădăcină este deja furnizat.
- Calculează măsura Gini pentru nodul frunză stâng.
- Calculează măsura Gini pentru nodul frunză drept.
- Calculează câștigul scăzând din Gini al nodului rădăcină măsurile Gini ponderate ale nodurilor frunză.
- Informațiile despre împărțirea din acest arbore pot fi accesate folosind
$splitși obiectul arborelui,small_tree. În loc de câștig, urmărește coloanaimprove.improveeste o metrică alternativă pentru câștig, obținută pur și simplu prin înmulțirea câștigului cu numărul de cazuri din setul de date. Asigură-te că obiectulimprove(cod furnizat) are aceeași valoare ca însmall_tree$split.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# The Gini-measure of the root node is given below
gini_root <- 2 * 89 / 500 * 411 / 500
# Compute the Gini measure for the left leaf node
gini_ll <-
# Compute the Gini measure for the right leaf node
gini_rl <-
# Compute the gain
gain <- gini_root - 446 / 500 * gini_ll - 54 / 500 * gini_rl
# compare the improve-column in small_tree$splits with our computed gain, multiplied by 500, and assure they are the same
small_tree$splits
improve <- gain * 500