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

Connected

연습 문제

최종 트리의 혼동 행렬과 정확도

지난 몇 개의 연습 문제에서 총 네 개의 가지치기된 결정나무를 만들었습니다. 보시다시피 최종 분할 개수는 트리마다 꽤 다릅니다:

ptree_undersample  # 7 splits
ptree_prior  # 9 splits
ptree_loss_matrix  # 24 splits
ptree_weights  # 6 splits

이제 어떤 트리가 정확도 측면에서 가장 잘 동작하는지 파악하는 것이 중요합니다. 정확도를 구하기 위해 먼저 테스트 세트를 사용해 예측을 만들고, 각 트리에 대해 혼동 행렬을 만듭니다. 이때 예측에는 type = "class" 인자를 추가하세요. 이렇게 하면 컷오프를 따로 설정할 필요가 없습니다.

다만, 중요한 것은 정확도뿐만 아니라 민감도와 특이도도 중요하다는 점입니다. 또한 이진값(0 또는 1) 대신 확률을 예측하면 컷오프를 조정할 수 있다는 장점이 있습니다. 반대로, 여기서의 어려움은 컷오프를 어떻게 선택하느냐입니다. 이에 대해서는 다음 장에서 다시 다룹니다.

참고로, 정확도는 다음과 같이 계산합니다: $$\textrm{Classification accuracy} = \frac{(TP + TN)}{(TP + FP + TN + FN)}$$

지침

100 XP
  • predict()를 사용해 네 개 트리 모두에 대한 예측을 만드세요. 인자 newdata에는 test_set을 넣습니다. type = "class"를 반드시 포함하세요!
  • 각 결정나무에 대해 혼동 행렬을 만드세요. 함수 table()을 사용하고, 먼저 "true" 상태(test_set$loan_status 사용)를 두고, 그다음 예측 값을 넣으세요.
  • 각 혼동 행렬을 사용해 정확도를 계산하세요.