포스팅 목적
아무런 생각없이 K-fold를 사용하고 있었는데, 문득 validation dataset이 무엇인지 모른다는것을 인지했다.
누가 물어보면 대답을 못하는 상황이었다.
그래서 간단하게 정리..
너무 짧아서 글이랄 것도 없지만 그래도 정리하는데 의의를 두고..!
데이터셋 구성
일반적으로 학습하기 위한 용도의 training dataset (훈련 데이터셋),
검증하는 validation dataset (검증 데이터셋), 성능평가하는 test dataset (시험 데이터셋) 세가지로 나눈다.
검증이란게 정확히 뭐냐 그럼?
Validation set
training dataset에서 학습한 모델의 하이퍼 파라미터를 튜닝하기 위한 용도의 데이터셋이다.
(하이퍼파라미터: 사용자가 설정해야 하는 변수)
즉 학습에 직접 사용되지는 않지만 모델에 간접적인 영향을 준다고 할 수 있다.
하이퍼파라미터가 없는 모델이라면 검증 데이터셋이 필요하지 않을 수 있다.
또는, 신경망의 경우 검증 데이터셋은 학습의 강도를 결정하는데 사용될 수도 있다.
러닝하는데 굉장히 오랜 시간이 걸리고, 어느순간부터는 과적합이 일어날 수 있는 상황이라면
언제까지 학습을 시킬지 판단하는 기준을 정할 때,
모델을 검증 데이터셋에다가 적용하여 예측성능을 평가해보는것으로 그 기준점을 정할 수 있다.
모델의 예측 성능이 올라가지 않는 시점까지만 훈련을 하는 것이다.
데이터셋 분할법
데이터셋을 어떤 비율로 나눌 것인지,
트레이닝 데이터셋을 쪼개서 검증 데이터셋을 만들 것인지,
테스트 데이터셋을 쪼개서 검증 데이터셋을 만들 것인지,
정해진 것은 없는 듯 하다.
맺음말
간단하지 않은가?
나중에 기회가 되면 좀더 내용을 보강해보는것으로.
코드도 넣고.
'PL > Python' 카테고리의 다른 글
Ensemble learning 1: 앙상블 학습의 개념, 보팅 voting (0) | 2022.12.15 |
---|---|
pandas value_counts() 사용법 (0) | 2022.12.09 |
pandas groupby cumcount 사용법 이해 (0) | 2022.12.06 |
[코드 스터디] UCI-HAR 데이터셋2: 중복칼럼 리네이밍 (0) | 2022.11.23 |
데이터프레임의 인덱스 중복과 loc 프로퍼티 (0) | 2022.11.02 |
댓글