시작하기무료로 시작하기

셔플을 이용한 교차 검증

기억하듯이, 교차 검증은 데이터를 여러 번 학습용과 테스트용으로 나누는 과정입니다. 매번 서로 다른 학습/테스트 세트를 선택하게 되죠. 이 연습 문제에서는 앞에서 사용했던 기업 가치 데이터를 대상으로 전통적인 ShuffleSplit 교차 검증을 수행해 봅니다. 이후에 시계열 데이터에 맞게 어떤 변경이 필요한지도 다룰 예정이에요. 사용할 데이터는 여러 대기업의 동일한 과거 가격 데이터입니다.

Linear regression 객체(model) 인스턴스와 점수 계산을 위한 r2_score() 함수가 작업 공간에 준비되어 있습니다. 또한 데이터는 배열 Xy에 저장되어 있어요. 결과를 시각화할 수 있도록 보조 함수(visualize_predictions())도 제공했습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 시계열 데이터 Machine Learning

강의 보기

연습 안내

  • 10개의 분할을 가진 ShuffleSplit 교차 검증 객체를 초기화하세요.
  • 이 객체를 사용해 CV 분할을 순회하세요. 각 반복에서:
    • 학습 인덱스를 사용해 모델을 학습(fit)하세요.
    • 테스트 인덱스를 사용해 예측을 생성하고, 예측으로 모델의 점수(\(R^2\))를 계산해 결과를 수집하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)

# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
    # Fit the model on training data
    ____(X[tr], y[tr])
    
    # Generate predictions on the test data, score the predictions, and collect
    prediction = ____(X[tt])
    score = r2_score(____, ____)
    results.append((prediction, score, tt))

# Custom function to quickly visualize predictions
visualize_predictions(results)
코드 편집 및 실행