본문 바로가기
Learning-driven Methodology/ML (Machine Learning)

[Machine Learning] K겹 교차 검증 (K-fold cross validation)

by goatlab 2023. 4. 27.
728x90
반응형
SMALL

K겹 교차 검증 (K-fold cross validation)

 

 

k-fold cross-validation (k-겹 교차 검증)은 가장 널리 사용되는 교차 검증 방법의 하나로, 데이터를 k개로 분할한 뒤, k-1개를 학습용 데이터 세트로, 1개를 평가용 데이터 세트로 사용하는데, 이 방법을 k번 반복하여 k개의 성능 지표를 얻어내는 방법이다.

 

k를 4로 설정하는 경우, 데이터를 폴드 (fold)라고 하는 거의 비슷한 크기의 부분 집합 네 개로 나눈다. 그 다음 일련의 모델을 만든다. 첫 번째 모델은 첫 번째 폴드를 평가용 데이터셋으로 사용하고, 두 번째부터 네 번째까지의 폴드 (3개의 폴드)를 학습용 데이터셋으로 사용한다. 그 다음 모델을 두 번째 폴드를 평가용, 1, 3, 4 폴드를 학습용 데이터셋으로 사용한다. 이후도 마찬가지로 수행하여 총 4개의 정확도 값을 얻게 된다.

 

데이터를 어떻게 나누느냐에 따라서 성능을 평가한 결과가 터무니없이 높거나 낮을 수 있다. 이 방법으로 총 데이터 갯수가 적은 데이터 셋에 대하여 정확도를 향상시킬수 있다.

 

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score

# iris 데이터 불러오기
iris= load_iris()

# 로지스틱 회귀 인스턴스 생성
logreg = LogisticRegression()

# k=4로 k-fold cross validation 수행
scores = cross_val_score(logreg, iris.data, iris.target, cv=4)
print("교차 검증 점수: ", scores)
728x90
반응형
LIST