재표본추출 기법
이전 연습 문제에서는 클래스 불균형이 혼동 행렬 결과에 어떤 영향을 주는지 살펴봤어요. 이번 연습 문제에서는 loan_data와 같은 클래스 불균형 데이터셋에 대해, 서로 다른 재표본추출 방식이 결과에 어떤 차이를 만드는지 연습해 보겠습니다. sklearn의 resample() 함수를 사용할 때, 다수 클래스의 행 수에 맞추는 것을 업샘플링, 소수 클래스의 행 수에 맞추는 것을 다운샘플링이라고 합니다.
loan_data 데이터셋의 업샘플링 버전과 다운샘플링 버전을 각각 만든 뒤, 두 데이터셋 모두에 로지스틱 회귀를 적용하고 성능을 평가해 보세요. 학습 데이터와 그 레이블은 deny가 소수 클래스, approve가 다수 클래스로 서브셋되어 있습니다.
예측을 위한 train/test 분할 객체 중 테스트 데이터는 X_test로 작업 공간에 저장되어 있으니, 연습 문제에서 활용하시면 됩니다.
이 연습은 강의의 일부입니다
Python으로 연습하는 Machine Learning 면접 질문
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Upsample minority and combine with majority
loans_upsampled = ____(deny, replace=True, n_samples=len(____), random_state=123)
upsampled = pd.concat([approve, loans_upsampled])
# Downsample majority and combine with minority
loans_downsampled = ____(____, replace = False, n_samples = len(deny), random_state = 123)
downsampled = pd.concat([loans_downsampled, deny])