더 많은 옵션으로 마지막 트리 만들기
이 연습에서는 영상에서 다룬 마지막 몇 가지 인수를 사용해 보겠습니다. rpart.control() 함수의 일부 설정을 바꾸고, rpart()의 weights 인수를 사용해 가중치를 포함하겠습니다. 벡터 case_weights는 이미 만들어져 작업 공간에 로드되어 있어요. 이 벡터에는 훈련 세트의 비연체 건에 가중치 1, 연체 건에 가중치 3이 들어 있습니다. 연체에 더 높은 가중치를 주면, 모델이 연체를 정확히 분류하는 것을 더 중요하게 여기게 됩니다.
이 연습은 강의의 일부입니다
R로 배우는 신용 위험 모델링
연습 안내
- 시드를 345로 설정하세요.
- 제공된 코드에서
rpart()의weights인수에case_weights를 전달해 추가하세요. rpart.control에서minsplit과minbucket인수를 각각 사용해 노드에서 허용되는 최소 분할 수를 5로, 리프 노드에서 허용되는 최소 관측치 수를 2로 변경하세요.- plotcp() 함수를 사용해 교차 검증 오류율이 최소가 되는 지점을 확인하세요.
which.min()을 사용해tree_weights$cp에서"xerror"가 최소인 행을 찾아index에 할당하세요.- 제공된 코드를 사용해 교차 검증 오류가 최소가 되는
cp를 선택하세요. - 교차 검증 오류율이 최소가 되는 복잡도 매개변수로 트리를 가지치기(prune)하세요. 가지치기된 트리를
ptree_weights에 저장하세요. prp()함수를 사용해 가지치기된 트리를 그리세요. 두 번째 인수extra를 포함하고 값을 1로 설정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# set a seed and run the code to obtain a tree using weights, minsplit and minbucket
set.seed(345)
tree_weights <- rpart(loan_status ~ ., method = "class",
data = training_set,
control = rpart.control(minsplit = ___, minbucket = ___, cp = 0.001))
# Plot the cross-validated error rate for a changing cp
# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])
# Create tree_min
tree_min <- tree_weights$cp[index, "CP"]
# Prune the tree using tree_min
# Plot the pruned tree using the rpart.plot()-package