
6
장
알고리즘 체인과 파이프라인
399
은 특성이 선택된 것일까요? 교차 검증 밖에서 특성을 선택했기 때문에 훈련과 테스트 폴드 양
쪽에 연관된 특성이 찾아질 수 있습니다.
7
테스트 폴드에서 유출된 정보는 매우 중요한 역할을
하기 때문에 비현실적으로 높은 결과가 나왔습니다. 이 결과를 파이프라인을 사용한 교차 검증
과 비교해보겠습니다.
In [16]:
pipe = Pipeline([("select", SelectPercentile(score_func=f_regression,
percentile=5)),
("ridge", Ridge())])
print("교차 검증 점수(파이프라인): {:.2f}".format(
np.mean(cross_val_score(pipe, X, y, cv=5))))
Out [16]:
교차 검증 점수(파이프라인): -0.25
이번에는
R
2
점수가 음수라 성능이 매우 낮은 모델임을 나타냅니다. 파이프라인을 사용했기 때
문에 특성 선택이 교차 검증 반복 안으로 들어갔습니다. 이 말은 훈련 폴드를 사용해서만 특성
이 선택되었고 테스트 폴드는 사용하지 않았다는 뜻입니다. 특성 선택 단계에서 훈련 폴드의
타깃값과 연관된 특성을 찾았지만, 전체 데이터가 무작위로 만들어졌으니 테스트 폴드의 타깃
과는 연관성이 없습니다. 이 예는 특성 선택 단계에서 일어나는 ...