반응형
sklearn은 kfold 교차검증을 보다 편리하게 수행할 수 있는 API를 제공합니다.
바로 cross_val_score() 인데요!
기존에 폴드 세트를 지정하고, for 루프에서 반복으로 학습 및 테스트 데이터의 인덱스를 추출하고, 반복적으로 학습과 예측을 수행하는 일련의 과정을 한번에 수행해주는 API입니다.
특히 classifier 학습을 진행하는 경우 자동으로 stratified KFold 방식을 진행해주기 때문에 더할나위 없이 편하다고 할 수 있겠네요!
cross_val_score() 사용법
cross_val_score(estimator, X, y, scoring=평가지표, cv=교차 검증 폴드 수) 까지가 주요 파라미터라고 할 수 있습니다.
* 여기서 estimator가 classifier 종류이면 내부적으로 stratified KFold 로 진행된다는 뜻 !
cv로 지정된 횟수만큼 scoring 파라미터로 지정된 평가 지표로 평가 결괏값을 배열로 반환합니다.
그리고 이를 평균하여 평가 수치로 활용하는 것이 일반적입니다.
### sklearn 기본 데이터인 iris 데이터 활용
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
iris_data = load_iris()
dt_clf = DecisionTreeClassifier(random_state=42)
data = iris_data.data ## X
label = iris_data.target ## y
### 성능지표는 정확도(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))
이는 DecisionTreeClassifier로 자동적으로 stratified KFold가 수행되었습니다.
반응형
'python > 파이썬 머신러닝 완벽가이드' 카테고리의 다른 글
[NLP] pipeline을 활용한 직관적인 코드짜기! (0) | 2022.05.03 |
---|---|
[NLP] 피처백터화 / 희소행렬 (0) | 2022.05.02 |
[NLP] NLP 기초, 텍스트 전처리의 모든 것 (0) | 2022.04.30 |
[python] SMOTE를 활용한 오버샘플링 (0) | 2022.03.26 |
[python] LGBMClassifier 단번에 성능 높이기 (0) | 2022.03.26 |