모델 조정
극도로 불균형한 사기 거래 데이터에 대응하기 위해 랜덤 포레스트 모델을 조정하는 간단한 방법 중 하나는 sklearn 모델을 정의할 때 class_weights 옵션을 사용하는 거예요. 다만 보시다시피 이 방법은 다소 무딘 도구에 가까워서, 특정한 상황에서는 잘 맞지 않을 수도 있어요.
이번 연습 문제에서는 앞선 연습에서 만든 Random Forest 모델에 weight = "balanced_subsample" 모드를 적용해 보려고 합니다. 데이터는 이미 학습/테스트 세트로 분할되어 있어 X_train, X_test, y_train, y_test를 사용할 수 있어요. 성능 평가용 metrics 함수들도 이미 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 사기 탐지
연습 안내
- 분류기의
class_weight인자를balanced_subsample로 설정하세요. - 학습 세트에 모델을 fit 하세요.
X_test에서 예측값과 예측 확률을 구하세요.roc_auc_score, 분류 보고서, 그리고 혼동 행렬을 구하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define the model with balanced subsample
model = RandomForestClassifier(class_weight='____', random_state=5)
# Fit your training model to your training set
model.fit(____, ____)
# Obtain the predicted values and probabilities from the model
predicted = ____.____(____)
probs = ____.____(____)
# Print the roc_auc_score, the classification report and confusion matrix
print(____(____, ____))
print(____(____, ____))
print(____(____, ____))