본문 바로가기
개발/Python

Python > Meachine Learning > cross_val_score, cross_validate

by shining park 2025. 6. 3.
🤔 cross_val_score과 cross_validate의 차이는 뭘까?
 
➡︎ cross_val_score()와 cross_validate()는 교차 검증을 수행한다는 점에서 비슷하지만, 반환 값과 기능에서 중요한 차이가 있음
 
 

 

🥊 cross_val_score() vs cross_validate()

 

항목 cross_val_score() cross_validate
반환값 각 fold의 단일 지표 값 리스트 (ex. 정확도 리스트) 여러 지표 포함된 dict (학습시간, 평가점수 등)
여러 평가 지표 지원 ❌ 단일 지표만 가능 (scoring='accuracy' 등) ✅ 여러 지표 지원 (scoring=['accuracy', 'f1'] 등)
학습/평가 시간 반환 ❌ 제공하지 않음 ✅ 'fit_time', 'score_time' 포함됨
유연성 단순하고 직관적 더 유연하고 상세한 정보 제공
사용 예시 빠르게 정확도 등 하나의 점수만 확인할 때 학습 시간, 복수 지표, 내부 과정 분석 필요할 때
 

 

 

❕예시

    cross_val_score()

from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X, y, cv=5, scoring='accuracy')
print(scores) # [0.91, 0.88, 0.93, 0.89, 0.92]
print(scores.mean()) # 평균 정확도
 
    cross_validate()
from sklearn.model_selection import cross_validate

results = cross_validate(model, X, y, cv=5, scoring=['accuracy', 'f1_macro'], return_train_score=True)
print(results['test_accuracy']) # 각 fold의 테스트 정확도
print(results['test_f1_macro']) # 각 fold의 테스트 f1 점수
print(results['fit_time']) # 학습 시간
print(results['train_accuracy']) # 훈련 정확도 (선택적으로 반환)

 

 

 

📌 정리

  • 단순히 검증 점수 (ex. 정확도)만 보고 싶다면 ➡︎ cross_val_score()
  • f1, precision 등 여러 지표가 필요하다면 ➡︎ cross_validate()
  • 학습 시간, 검증 시간도 확인하고 싶다면 ➡︎ cross_validate()
  • 훈련 성능도 같이 보고 싶다면 (return_train_score=True) ➡︎ cross_validate()

필요한 기능이나 분석 목적에 따라 선택하면 되지만, 실전 프로젝트나 논문 수준에서는 cross_validate()가 더 자주 쓰이는 편

 

'개발 > Python' 카테고리의 다른 글

Python > Deep Learning > PyTorch  (0) 2025.06.03
Scikit-Learn > fit(), transform()  (0) 2025.05.10
DB > fetchmany, fetchone, fetchall  (0) 2025.04.27
🪄매직 메소드 __xxx__  (0) 2025.04.17
🦭바다코끼리 연산자  (0) 2025.04.13