반응형
Concept
K-Fold Cross Validation (K 폴드 교차 검증)은 데이터 수가 적을 때, 보다 확실한 검증과 정확도 향상을 위해 사용되는 검증 기법입니다.
파이썬 sklearn 라이브러리에는 K-Fold를 쉽게 정의해주는 함수를 포함하고 있습니다.
from sklearn.model_selection import KFold
# K-FOLD 정의
nb_split = 5 # 분할 개수
KF = KFold(n_splits=n_split, shuffle=True)
정의한 이후, 학습 단계에서 for문으로 데이터를 분할하면 됩니다. 예를 들어 pandas로 입력된 DataFrame 데이터는 다음과 같이 데이터가 k-fold로 나뉘게 됩니다.
for train_idx, valid_inx in kf.split(train_data):
# 학습 데이터
train_in = train_data.iloc[train_idx]
# 검증 데이터
valid_in = train_data.iloc[valid_inx]
이후 단계는 기존 알고리즘 학습과 동일합니다. 평균 성능 검증을 위해선 분할된 만큼 개별적으로 검증 데이터로 검증되어야 하며 최적 가중치 역시 개별적으로 학습되어야 하기때문에 기존 학습 대비 K배 만큼의 시간이 더 소요됩니다.
Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발
인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai
반응형
'Python > Tensorflow' 카테고리의 다른 글
[Tensorflow] 학습을 위한 대용량 훈련 데이터 처리 Data Generator 클래스 만들기 (1) | 2021.03.17 |
---|---|
[Tensorflow] 분류기 학습을 위한 One-Hot encoding 라벨 생성하기 (0) | 2021.02.24 |
[Tensorflow] GAN (생산적 적대 신경망) 구현하기 (0) | 2021.02.17 |
[Tensorflow] RTX 3000 시리즈에 텐서플로우 2.5 및 CUDA 11 설치하기 (0) | 2021.02.01 |
[Tensorflow] keras를 이용한 MNIST, CIFAR 이미지 분류 데이터셋 다운로드 (0) | 2020.12.30 |