Justweon
Justweon
Justweon
전체 방문자
오늘
어제
  • 분류 전체보기 (74)
    • 웹 개발 (2)
      • React (0)
      • Spring (0)
    • 모바일 앱 프로그래밍 (4)
    • 네트워크 프로그래밍 (17)
      • C (17)
    • DATA (42)
      • 데이터 사이언스 (6)
      • 머신 러닝 (31)
      • 데이터베이스 (2)
      • 기타 (3)
    • 토이 프로젝트 (0)
      • 닮은 배우 분류기 (0)
      • PDF 변환기 (GUI) (0)
    • 취미 (1)
      • Photoshop (1)
      • 먹부림 (0)
    • 이것저것 (2)
    • 보안 (1)
      • 드림핵 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 모델 평가
  • 경사 하강법
  • 파이썬
  • 알고리즘
  • 취미
  • 토이프로젝트
  • 하이퍼파라미터
  • 하이퍼 파라미터
  • 그리드 서치
  • MLP
  • 과대적합(overfitting)
  • 텐서보드
  • SVM
  • 정규화
  • tensorflow
  • 포토샵
  • 샐러드
  • 시각화
  • keras
  • pandas
  • 데이터 사이언스
  • GUI
  • 과소적합(underfitting)
  • 코랩
  • 프로젝트
  • 심층 신경망
  • 머신 러닝
  • 데이터 전처리
  • 맛집
  • 콜백

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Justweon

Justweon

DATA/머신 러닝

[머신 러닝] 테스트와 검증

2022. 1. 7. 14:30

홀드아웃 검증 (holdout validation)

홀드아웃 검증에서는 훈련 세트의 일부를 떼어내어 검증 세트(validation set)을 만듭니다.

검증 세트를 떼어내고 남은 훈련 세트에서 다양한 하이퍼파라미터 값을 가진 여러 모델을 훈련합니다.

그 다음 검증 세트에서 가장 높은 성능을 내는 모델을 선택합니다.

 

홀드아웃 검증 과정이 끝나면 이 최선의 모델을

전체 훈련 세트에서 다시 훈련해서 최종 모델을 만듭니다.

 

마지막으로 최종 모델을 테스트 세트에서 평가하여 일반화 오차를 추정합니다.

 

이 방법은 일반적으로 잘 작동하지만,

검증 세트가 너무 작은 경우 모델이 정확하게 평가되지 않을 것이고,

검증 세트가 너무 크면 검증 세트를 뗀 훈련 세트가 전체 훈련 세트보다 너무 작아지기 때문에

전체 훈련 세트에서 훈련되는 최종 모델과

너무 작은 훈련 세트에서 훈련한 후보 모델을 비교하는 것은 이상적이지 않습니다.

 

이런 문제를 k겹 교차 검증으로 해결할 수 있습니다.

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

k겹 교차 검증은 머신 러닝 모델의 성능을 좀 더 정확하게 평가할 수 있는 방법입니다.

 

여태는 그냥 데이터를 트레이닝 셋과 테스트 셋으로 한 번 나누고,
트레이닝 셋을 학습시키는 데 사용하고,
테스트 셋을 평가하는 데 사용했습니다.

 

이런식으로 하면 실제와는 상관없이 운이 좋게 테스트 셋이 나와서 성능이 좋게 보일 수 있고,
운이 나쁘게 테스트 셋이 나와서 성능이 안좋게 보일 수도 있습니다.
이런 경우에는 모델의 실제 성능을 제대로 파악했다고 말하기 어렵습니다.

 

교차 검증은 이 문제를 해결해주는 방법이고, k겹 교차 검증은 교차 검증 중에 가장 흔히 쓰이는 방법입니다.

 

k겹 교차 검증은 먼저 전체 데이터를 k개의 같은 사이즈의 데이터로 나눕니다.

 

맨 처음에는 첫 번째 데이터 묶음을 테스트 셋으로 사용하고 나머지 데이터를 트레이닝 셋으로 활용합니다.
그 다음에는 두 번째 데이터 묶음을 테스트 셋으로 사용하고 나머지 데이터를 트레이닝 셋으로 활용합니다.
이런식으로 나눠진 모든 테이터 묶음에 반복해줍니다.

 

결국에는 각 테스트 셋에 대한 성능이 있을텐데,
그 성능들의 평균을 모델의 전체 성능으로 봅니다.
이렇게 하면 모델의 성능을 여러 번 다른 데이터로 검증하기 때문에 평가에 대한 신뢰도가 올라가게 됩니다.

 

k로 가장 많이 활용하는 숫자는 5입니다.

 

k로 5를 사용할 경우에는 5겹 교차검증, 10을 사용할 경우에는 10겹 교차검증이라고 부르기도 합니다.

scikit-learn으로 k겹 교차 검증 해보기

'DATA > 머신 러닝' 카테고리의 다른 글

[머신 러닝] 결정 트리 (Decision tree)  (0) 2022.01.09
[머신 러닝] 그리드 서치 (Grid search)  (0) 2022.01.07
[머신 러닝] 과소적합(underfitting), 과대적합(overfitting)  (0) 2022.01.07
[머신 러닝] 더 빠르게, 더 정확하게  (0) 2022.01.06
[머신 러닝] 로지스틱 회귀 (Logistic Regression)  (0) 2022.01.05
    'DATA/머신 러닝' 카테고리의 다른 글
    • [머신 러닝] 결정 트리 (Decision tree)
    • [머신 러닝] 그리드 서치 (Grid search)
    • [머신 러닝] 과소적합(underfitting), 과대적합(overfitting)
    • [머신 러닝] 더 빠르게, 더 정확하게
    Justweon
    Justweon
    공부 목적을 위해 기록하는 블로그입니다 :)

    티스토리툴바