프로젝트/코드프레소 체험단

머신러닝을 위한 사이킷런 활용 팁 - K-Fold 교차 검증 실습

KimCookieYa 2022. 2. 13. 18:57

cross_val_score() API를 이용하여 교차검증 성능 지표 계산

   API URL: sklearn.model_selection.cross_val_score

  • cross_val_score() API의 Argument(인자)
    • estimator: 구현하고자 하는 모델(Classification, Regression)
    • X: 데이터 세트
    • y: label 데이터 세트
    • scoring: 검증 지표(성능 평가 지표)
    • cv: Cross Validation의 Fold 숫자
  • cross_val_score() API의 Return(반환 값)
    • scores: list 형태의 Fold별 검증 결과(성능지표)

 

 

 * K-Fold Cross Validation를 활용하여 iris 데이터셋 분류 모델을 구현하는 실습

'''
-------- [최종 출력 결과] --------
Fold val accuracy: [0.98 0.94 0.98]
Avg val accuracy: 0.9667
----------------------------------
'''

# K Fold Validation을 위한 cross_val_score() 메서드 로딩
from sklearn.model_selection import cross_val_score

# 모델 구현을 위한 라이브러리 로딩
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
import numpy as np

# load_iris() 메서드를 이용하여 iris 데이터 셋 로드
iris = load_iris()
data = iris.data
label = iris.target

# DecisionTreeClassifier 모델 객체 생성
dt_clf = DecisionTreeClassifier(random_state=156)

# cross_val_score() 메서드를 이용하여 교차 검증 수행
scores = cross_val_score(estimator=dt_clf, X=data, y=label, scoring='accuracy', cv=3)

# 교차 검증 수행 결과 성능 지표 출력
print('Fold val accuracy:',np.round(scores, 4))
print('Avg val accuracy:', np.round(np.mean(scores), 4))