더북(TheBook)

먼저 sklearn.model_selection 모듈에 있는 StratifiedKFold 클래스를 훈련 데이터셋의 y_train 클래스 레이블을 전달하여 초기화합니다. n_splits 매개변수로 폴드 개수를 지정합니다. kfold 반복자를 사용하여 k개의 폴드를 반복하여 얻은 train의 인덱스를 이 장 서두에서 정의한 로지스틱 회귀 파이프라인을 훈련하는 데 사용할 수 있습니다. pipe_lr 파이프라인을 사용하므로 각 반복에서 샘플의 스케일이 적절하게 조정됩니다(예를 들어 표준화를 통해서). 그다음 테스트 인덱스를 사용하여 모델의 정확도 점수를 계산합니다. 이 점수를 리스트에 모아서 추정한 정확도의 평균과 표준 편차를 계산합니다.

앞 코드가 k-겹 교차 검증의 작동 방법을 설명하는 데 유용하지만 사이킷런은 k-겹 교차 검증 함수를 제공합니다. 좀 더 간단하게 계층별 k-겹 교차 검증을 사용하여 모델을 평가할 수 있습니다.5

>>> from sklearn.model_selection import cross_val_score

>>> scores = cross_val_score(estimator=pipe_lr,
...                          X=X_train,
...                          y=y_train,
...                          cv=10,
...                          n_jobs=1)
>>> print('CV 정확도 점수: %s' % scores)
CV 정확도 점수: [0.93478261  0.93478261  0.95652174
                 0.95652174  0.93478261  0.95555556
                 0.97777778  0.93333333  0.95555556
                 0.95555556]
>>> print('CV 정확도: %.3f +/- %.3f' % (np.mean(scores),
...       np.std(scores)))
CV 정확도: 0.950 +/- 0.014

 

 


  5 역주 cross_val_score 함수는 estimator 매개변수에 전달된 모델이 회귀일 때는 단순 분할 클래스인 KFold를 사용하고 분류일 때는 StratifiedKFold를 사용합니다. cv 매개변수에 KFold 등의 클래스 객체를 직접 전달할 수도 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.