계층적 표본추출 (Stratified sampling)
이제 volunteer 데이터셋의 category_desc 열에 있는 클래스 레이블 분포가 고르지 않다는 것을 아셨죠. category_desc를 예측하는 모델을 학습하려면, 전체 데이터셋을 잘 대표하는 표본으로 모델을 학습시키는 것이 중요해요. 계층적 표본추출은 이를 달성하는 좋은 방법입니다!
이 연습은 강의의 일부입니다
Python으로 배우는 Machine Learning 전처리
연습 안내
category_desc를 제외한 모든 열로 특징 DataFrameX를 만드세요.category_desc열에서 레이블 DataFramey를 만드세요.- 레이블의 클래스 분포가 학습 세트와 테스트 세트 모두에서 동일하도록
X와y를 학습/테스트 세트로 분할하세요. .value_counts()를 사용해y_train의 레이블과 개수를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a DataFrame with all columns except category_desc
X = volunteer.____(____, axis=____)
# Create a category_desc labels dataset
y = ____[[____]]
# Use stratified sampling to split up the dataset according to the y dataset
X_train, X_test, y_train, y_test = ____(____, ____, ____, random_state=42)
# Print the category_desc counts from y_train
print(____[____].____)