sklearn.model_selection.cross_val_score 인자 정리

KFold 교차 검증을 간편하게 할 수있는 사이킷런의 교차검증 API

KFold 데이터 학습과 예측 프로세스

  1. 폴드 세트를 설정
  2. for문을 통해 학습 및 테스트 데이터의 인덱스를 추출
  3. 반복하면서 학습과 예측수행하고 평겨 결과 반환

cross_val_score() 를 쓰면 한번에 해결 가능하다. → 폴드 세트 추출, 학습 및 예측, 평가 과정들을 한번에 수행

 

from sklearn.model_selection import cross_val_score

cross_val_score(estimator,X,y=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs')

- estimator : classifier , regression 모델 (classifier : Stratified KFold 자동 적용)
- X : feature dataset
- y : label dataset
- scoring : 평가지표
- cv : number of cross validation
- n_jobs : Number of jobs to run in parallel (병렬처리 갯수, -1:using all processors)
- verbose : 수행 중 정보출력 (0:출력없음, 1:자세히, 2:함축적인 정보)
- pre_dispatch : Controls the number of jobs that get dispatched during parallel execution.


 

사이킷런 iris 데이터와 결정 트리를 사용한 분류 모델 예시 

from sklearn.tree import DecisionTreeClassifier
# cross_val_score
from sklearn.model_selection import cross_val_score , cross_validate
from sklearn.datasets import load_iris
import numpy as np

iris_data = load_iris()
dt_clf = DecisionTreeClassifier(random_state=156)

data = iris_data.data
label = iris_data.target

# 성능 지표는 정확도(accuracy), 교차 검증 세트는 3개 
scores = cross_val_score(dt_clf , data , label , scoring='accuracy', cv=3)
print('교차 검증별 정확도:',np.round(scores, 4))
print('평균 검증 정확도:', np.round(np.mean(scores), 4))