from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=200)
scores = cross_val_score(model, X, y, cv=5) # 5-Fold
print(scores) # [0.96, 0.98, 0.94, 0.96, 1.0] (폴드별 점수)
print(scores.mean()) # 평균 성능
| 파라미터명 | 의미/역할 | 예시/설명 |
|---|---|---|
estimator | 모델(분류기/회귀기)실제로 평가할 모델 객체 | LogisticRegression(), SVC() 등 |
X | 입력 데이터(피처, 독립변수) | train_X, X |
y | 정답 데이터(타깃, 레이블, 종속변수) | train_y, y |
cv | 폴드 수(몇 조각으로 나눌지) | 5(5-Fold), 10 등 |
scoring | 성능 평가 방식(기본: accuracy) | 'accuracy', 'f1', 'roc_auc' 등 |
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
X = [[1,2],[2,3],[3,4],[4,5]]
y = [0,0,1,1]
scores = cross_val_score(
estimator=model, # 사용할 모델
X=X, # 입력 데이터(피처)
y=y, # 정답 데이터(라벨)
cv=3, # 3-Fold 교차검증
scoring='accuracy'# 평가 방식(정확도)
)
print(scores)
cross-validation은 데이터를 여러 번 섞어서 훈련/평가를 반복하고, 그 평균 성능을 모델의 실력으로 삼는 방법! 실험/공모전/논문/실무에서 모델 비교, 파라미터 튜닝의 표준!