클래스 가중치 균형 잡기
recall과 accuracy 점수의 차이에서 보듯이, 클래스 불균형은 예측 결과에 큰 영향을 줄 수 있어요. 이를 해결하기 위해 보통 각 클래스에 동일한 가중치를 줍니다. sklearn의 DecisionTreeClassifier에서 class_weight 인자를 사용하면 클래스를 "balanced"로 설정할 수 있어요.
이제 불균형 문제를 해결해 모델을 바로잡아 봅시다:
- 먼저, 클래스 가중치를 균형 있게 한 모델을 설정하세요.
- 다음으로, 학습 데이터에 모델을 학습시키세요.
- 마지막으로, 테스트 세트에서 정확도를 확인하세요.
features_train, target_train, features_test, target_test 변수는 워크스페이스에 이미 준비되어 있어요.
이 연습은 강의의 일부입니다
HR Analytics: Python으로 직원 이탈 예측하기
연습 안내
- Decision Tree Classifier를 초기화하고, 최대 깊이를 5로 제한해 트리를 가지치기한 뒤, 클래스 가중치를 균형 있게 설정하세요.
- 새 모델을 학습시키세요.
- 테스트 세트에 대한 예측의 정확도
score를 백분율로 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialize the DecisionTreeClassifier
model_depth_5_b = DecisionTreeClassifier(____=5,class_weight="____",random_state=42)
# Fit the model
model_depth_5_b.____(features_train,target_train)
# Print the accuracy of the prediction (in percentage points) for the test set
print(model_depth_5_b.____(features_test,____)*100)