1. 학습
  2. /
  3. 강의
  4. /
  5. R로 배우는 신용 위험 모델링

Connected

연습 문제

트리의 gain 계산하기

영상에서는 Gini 지수를 활용해 트리의 최적 분할을 만드는 방법을 살펴봤어요. 이제 작업 공간에 로드된 트리에 대해 gain을 직접 계산해 보겠습니다.

이 데이터셋에는 500건의 사례가 있고, 그중 89건이 부도입니다. 루트 노드의 Gini 값은 0.292632입니다. 다시 한 번 기억해 두세요. 특정 노드의 Gini = 2 * (해당 노드의 부도 비율) * (해당 노드의 비부도 비율)입니다. 아래 코드를 참고해 복습해 보세요.

gini_root <- 2 * (89 / 500) * (411 / 500)

이 Gini 값을 사용해 루트 노드 대비 두 리프 노드의 gain을 계산합니다. 아래 코드를 보면, 앞서 구한 Gini 값을 이용해 노드의 gain을 어떻게 계산할 수 있는지 감을 잡으실 수 있어요.

Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))

왼쪽 노드와 오른쪽 노드의 Gini를 계산하고, 루트 노드 대비 두 리프 노드의 gain을 구하세요. 트리 객체는 small_tree입니다.

지침

100 XP
  • 루트 노드 Gini 계산은 제공되어 있습니다.
  • 왼쪽 리프 노드의 Gini 값을 계산하세요.
  • 오른쪽 리프 노드의 Gini 값을 계산하세요.
  • 루트 노드 Gini에서 가중 리프 노드 Gini 값을 빼서 gain을 계산하세요.
  • 이 트리의 분할 정보는 트리 객체 small_tree의 $split에서 확인할 수 있습니다. 여기서는 gain 대신 improve 열을 보세요. improve는 gain에 데이터셋의 사례 수를 곱해 얻는 대체 지표입니다. 제공된 코드로 만든 객체 improve의 값이 small_tree$split의 값과 동일한지 확인하세요.