사전확률을 변경하여 트리 가지치기
영상에서 보신 것처럼 과적합을 피하려면 트리를 가지치기(pruning)해야 합니다. 이전 연습 문제에서는 큰 트리들이 있었고, 이제 배운 내용을 실제로 적용해 보겠습니다. 변경된 사전확률로 앞에서 만든 트리를 가지치기해 보세요. 워크스페이스에는 이미 rpart 패키지가 로드되어 있습니다.
영상에서 언급했듯이, 결과의 재현성을 보장하기 위해 먼저 시드를 설정하세요. 교차검증 오류 결과를 살펴볼 것이며, 이 과정에는 무작위성이 있어 시드가 다르면 결과가 조금 달라질 수 있습니다.
이번 연습에서는 교차검증 오류를 최소화하는 복잡도 매개변수(CP)를 식별한 다음, 이 값을 바탕으로 트리를 가지치기하는 방법을 배웁니다.
이 연습은 강의의 일부입니다
R로 배우는 신용 위험 모델링
연습 안내
tree_prior는 워크스페이스에 로드되어 있습니다.plotcp()를 사용해tree_prior의 복잡도 매개변수에 따른 교차검증 오류(X-val Relative Error)를 시각화하세요.printcp()를 사용해 CP, 분할 수, 오류에 대한 표를 출력하세요.tree_prior에서 어떤 분할이 최소 교차검증 오류를 갖는지 확인해 보세요.which.min()을 사용해tree_prior$cptable의"xerror"열에서 최소 교차검증 오류를 갖는 행을 찾아index에 할당하세요.tree_prior$cptable에서"CP"열의index위치 값을 선택해tree_min을 생성하세요.prune()함수를 사용해 가지치기된 트리를 얻으세요. 이 트리의 이름은ptree_prior로 하세요.rpart.plot패키지는 워크스페이스에 로드되어 있습니다. prp() 함수를 사용해(기본 설정) 가지치기된 트리를 그리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# tree_prior is loaded in your workspace
# Plot the cross-validated error rate as a function of the complexity parameter
# Use printcp() to identify for which complexity parameter the cross-validated error rate is minimized.
# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])
# Create tree_min
tree_min <- tree_prior$cptable[index, "CP"]
# Prune the tree using tree_min
ptree_prior <- prune(___, cp = ___)
# Use prp() to plot the pruned tree