K-fold 교차 검증
가장 널리 쓰이는 K-fold 교차 검증을 직접 구현해 보겠습니다.
이번에 사용할 데이터는 Kaggle의 "Two sigma connect: rental listing inquiries" 대회 데이터입니다. 이 대회의 과제는 임대 매물을 관심도에 따라 3개 클래스로 분류하는 다중 클래스 분류 문제입니다: 관심도 낮음, 보통, 높음. 실행 속도를 높이기 위해 관측치 1,000개로 이루어진 하위 표본을 사용합니다.
K-fold 검증 전략을 구현하고, 생성된 각 fold의 크기를 확인하세요. train DataFrame은 이미 작업 공간에 준비되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 Kaggle 대회 공략하기
연습 안내
- 3개의 fold를 갖는
KFold객체를 생성하세요. kf객체를 사용해 각 분할을 순회하세요.- 각 분할에서
train_index와test_index를 사용해 학습용과 테스트용 fold를 선택하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import KFold
from sklearn.model_selection import KFold
# Create a KFold object
kf = ____(n_splits=____, shuffle=True, random_state=123)
# Loop through each split
fold = 0
for train_index, test_index in ____.____(train):
# Obtain training and testing folds
cv_train, cv_test = train.iloc[____], train.iloc[____]
print('Fold: {}'.format(fold))
print('CV train shape: {}'.format(cv_train.shape))
print('Medium interest listings in CV train: {}\n'.format(sum(cv_train.interest_level == 'medium')))
fold += 1