SMOTE와 원본 데이터 비교
이전 연습 문제에서 SMOTE를 사용하면 소수 클래스의 관측치가 크게 늘어나는 것을 보셨죠. 이제 그 결과를 원본 데이터와 비교해 보며 실제로 어떤 변화가 있었는지 감을 잡아 봅시다. 먼저 옛 데이터와 새 데이터의 값 분포(value counts)를 다시 확인하고, 두 데이터의 산점도를 나란히 그려 보겠습니다. 이를 위해 미리 정의된 함수 compare_plot()을 사용할 거예요. 이 함수는 다음 인수를 받습니다: X, y, X_resampled, y_resampled, method=''. 이 함수는 원본 데이터의 산점도와 리샘플링된 데이터를 나란히 표시합니다.
이 연습은 강의의 일부입니다
Python으로 배우는 사기 탐지
연습 안내
- 원래 레이블
y의 값 분포를 출력하세요. 현재y는 Numpy 배열이므로 value counts를 사용하려면y를 pandas Series 객체로 다시 만들어야 합니다. - 같은 단계를
y_resampled에도 적용해 값 분포를 출력하세요. 이를 통해 SMOTE로 두 클래스 간 균형이 어떻게 바뀌었는지 확인할 수 있습니다. - 미리 정의된
compare_plot()함수를 사용해 원본 데이터와 리샘플링된 데이터를 각각 입력하여 산점도를 나란히 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Print the value_counts on the original labels y
print(pd.value_counts(pd.Series(____)))
# Print the value_counts
print(____(____(____)))
# Run compare_plot
compare_plot(____, ____, ____, ____, method='SMOTE')