빅데이터 | 머신러닝 | 딥러닝/딥러닝

[딥러닝 기초] k-fold 교차 검증(cross validation)

냠냠:) 2020. 5. 2. 22:36

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.]

 

목표 - 교차 검증을 이해한다.

 

교차 검증이란?

전체 데이트 세트를 8:2로 나눈 다음 8에 해당되는 훈련 세트를 다시 5개의 작은 덩어리로 나눠 1개씩 검증 세트를 만들어 훈련시키는 방법이다.

 

교차 검증 과정

  • 훈련 세트를 k개의 폴드로 나눔.
  • 첫 번째 폴드를 검증 세트로 사용하고 나머지 폴드(k-1)를 훈련세트로 사용함.
  • 모델을 훈련한 뒤 검증 세트로 평가.
  • 차례대로 다음 폴드를 검증 세트로 사용하여 반복.
  • 최종 성능을 계산.

교차 검증에서 훈련 데이터의 표준화 전처리를 폴드를 나눈 후에 하는 이유?

- 훈련을 하기 전에 데이터 전처리를 하고 폴드로 나눈 다면 검증 폴드의 정보를 누설하게 되어 성능개선이 안될 수도 있다.

 

Pipeline 클래스

- 사이킷런은 검증 폴드가 전처리 단계에서 누설되지 않도록 전처리 단계와 모델 클래스를 하나로 연결해 주는 Pipeline 클래스를 제공한다.

 

cross_validate

- 사이킷런은 교차 검증 모델을 제공함.

 

테스트 과정

  • sgd 모델을 정의.
  • make_pipeline을 이용해 전처리해주는 모듈과 sgd를 묶어 pipe를 만들어 준다.
  • cross_validate 모델에 pipe를 넣어준 뒤 cv 파라미터에 훈련 데이터를 나눌 크기를 정해준다.

반응형