트리 가지치기(Pruning)
과적합은 분석에서 흔히 발생하는 문제이며, 특히 의사결정나무 알고리즘에서 자주 나타납니다. 트리가 완전히 자라면 학습용 샘플에서는 매우 정확한 예측을 할 수 있지만, 테스트 세트에서는 그만큼 정확하지 않을 수 있습니다. 이러한 이유로 의사결정나무의 성장은 보통 다음과 같이 제어합니다:
- 트리를 “가지치기(pruning)”하여 가질 수 있는 최대 깊이에 제한을 둡니다.
- 하나의 리프에 포함될 수 있는 최소 관측치 수를 제한합니다.
이 연습 문제에서는 다음을 수행합니다:
- 트리를 가지치기하여 깊이를 최대 5 레벨로 제한합니다
- 직원 데이터에 모델을 학습합니다
- 학습 세트와 테스트 세트 모두에서 예측 결과를 확인합니다.
features_train, target_train, features_test, target_test 변수는 작업 공간에 이미 준비되어 있습니다.
이 연습은 강의의 일부입니다
HR Analytics: Python으로 직원 이탈 예측하기
연습 안내
- 트리의 최대 깊이를 5로 제한하여
DecisionTreeClassifier를 초기화하세요. - 학습 세트의
features와target을 사용해 의사결정나무 모델을 학습하세요. - 학습 세트와 테스트 세트 모두에서 예측 정확도를 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialize the DecisionTreeClassifier while limiting the depth of the tree to 5
model_depth_5 = DecisionTreeClassifier(____=5, random_state=42)
# Fit the model
____.fit(features_train,target_train)
# Print the accuracy of the prediction for the training set
print(____.____(features_train,target_train)*100)
# Print the accuracy of the prediction for the test set
print(model_depth_5.score(____,____)*100)