전체 데이터 세트를 학습 세트, 즉 N개 하위 세트로 분할(split)한다. 이때 시험 데이터는 시험 문제에 해당하므로 학습 데이터로 사용되지 않도록 따로 분리해 두고 평가에만 사용한다. 이처럼 k개의 폴드로 나누어 검증하면 좀 더 정확한 성능을 측정할 수 있다.
폴드의 기본값은 5이며 폴드 수만큼 학습한다. 그래서 데이터가 크고 폴드 수가 크면 학습하는 데 시간이 오래 걸린다. 결과를 빨리 확인해야 한다면 폴드의 수를 줄이면 되는데, 폴드 수가 클수록 학습도 많이 진행하고 그만큼 검증 결과도 더 정확하다는 점도 알아 두자. 이 책에서는 학습 시간을 단축하기 위해 폴드 수를 3으로 설정했다(cv=3).
from sklearn.model_selection import cross_val_predict y_pred = cross_val_predict(model, train_feature_tfidf, y_train, cv=3, n_jobs=-1, verbose=1)
실행 결과
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers. [Parallel(n_jobs=-1)]: Done 3 out of 3 | elapsed: 6.0min finished