KFold 교차 검증을 간편하게 할 수있는 사이킷런의 교차검증 API
KFold 데이터 학습과 예측 프로세스
- 폴드 세트를 설정
- for문을 통해 학습 및 테스트 데이터의 인덱스를 추출
- 반복하면서 학습과 예측수행하고 평겨 결과 반환
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))
'Data Science > python' 카테고리의 다른 글
[pandas] pandas_profiling 정리 (0) | 2022.02.02 |
---|---|
sklearn.model_selection.GridSearchCV 정리 (0) | 2022.01.30 |
[pandas] dataframe/series 형태 train_test_split() 적용 (0) | 2022.01.30 |
데이터 인코딩 (Data encoding) (0) | 2022.01.23 |
SGD Classifier (0) | 2022.01.20 |