[python] scikit-learn을 활용한 교차 검증을 통한 모델 검증

머신 러닝 모델을 개발할 때, 모델의 성능을 평가하는 것은 매우 중요합니다. 이를 위해 교차 검증(cross-validation)은 일반적으로 사용되는 방법 중 하나입니다. scikit-learn을 사용하면 교차 검증을 간편하게 수행할 수 있습니다.

교차 검증이란?

교차 검증은 데이터를 여러 개의 부분으로 나누어 각각을 훈련(training)과 테스트(test)에 사용하는 방법입니다. 예를 들어, 데이터를 5개의 부분으로 분할한 경우, 첫 번째 부분이 테스트 데이터이고 나머지 4개의 부분이 훈련 데이터가 됩니다. 이후 각각의 부분을 순차적으로 테스트 데이터로 사용하여 모델을 평가하고 평균 성능을 계산합니다. 이러한 과정을 5번 반복하여 평균 성능을 구하게 됩니다.

scikit-learn에서의 교차 검증

scikit-learn 라이브러리는 cross_val_score 함수를 통해 교차 검증을 수행할 수 있습니다. 이 함수는 모델과 데이터, 그리고 교차 검증의 폴드 수를 입력으로 받습니다. 아래는 scikit-learn을 활용하여 교차 검증을 수행하는 예제 코드입니다.

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

# 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target

# 모델 생성
model = LogisticRegression()

# 교차 검증 수행
scores = cross_val_score(model, X, y, cv=5)

# 평균 성능 출력
print("평균 성능:", scores.mean())

위 코드에서는 load_iris 함수를 사용하여 iris 데이터를 로드하고, LogisticRegression을 사용하여 로지스틱 회귀 모델을 생성합니다. 이후 cross_val_score 함수를 호출하여 교차 검증을 수행하고, 평균 성능을 출력합니다.

참고자료