0120 ML

사랑이란 멜론·2024년 1월 20일

Machine Learning Study

목록 보기
8/17

술먹고왔는데 공부하고싶었다.

교차 검증

알고리즘을 학습시키는 학습 데이터와 이에 대한 예측 성능을 평가하기 위한 별도의 테스트용 데이터가 필요
이 방법 역시 과접합(overfitting)에 취약한 약점을 가질 수 있음.
과적합은 모델이 학습 데이터에만 과도하게 최적화되어, 실제 예측을 다른 데이터로 수행할 경우, 예측 성능이 과도하게 떨어지는 것

고정된 학습데이터와 테스트 데이터로 평가를 하다 보면 테스트 데이터에만 최적의 성능을 발휘할 수 있도록 편향되게 모델을유도하는 경향이 생김.
해당 테스트 데이터에만 과적합되는 학습 모델이 만들어져 다른테스트용 데이터가 들어올 경우, 성능이 저하됨. 이러한 문제점을 개선하기 위해, 교차검증을 이용해 더 다양한
학습과 평가를 수행함..

교차 검증을 좀 더 간략히 설명하자면, 본고사를 치르기 전에 모의고사를 여러번 보는 것.즉. 본고사가 테스트 데이터 세트에 대해 평가하는 거라면
모의고사는 교차 검증에서 많은 학습과검증 세트에서 알고리즘 학습과 평가를 수행하는 것.

ML은 데이터에 기반함. 그리고 데이터는 이상치, 분포도, 다양한 속성값, 피처 중요도 등 여러가지 ML에 영향을 미치는 요소를 가지고 있음.
특정 ML 알고리즘에서 최적으로 동작할 수 있도록 데이터를 선별해 학습한다면, 실제 데이터 양식과는 많은 차이가 있을 것.
성능 저하로 이어질 것.

교차검증은 이러한 데이터 편증을 막기 위해서 별도의 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행.
그리고 각 세트에서 수행한 평가 결과에 따라 하이퍼파라미터 튜닝 등의 모델 최적화를 더욱 손쉽게 할 수 있음..

대부분의 ML모델의 성능 평가는 교차 검증 기반으로 1차 평가를 한 뒤에 최종적으로 테스트 데이터 세트에 적용해 평가하는 프로세스.
ML에 사용되는 데이터 세트를 세분화해서 학습, 검증, 테스트 데이터 세트로 나눌 수 있음.
테스트 데이터 세트 외에 별도의 검증 데이터 세트를 둬서 최종 평가 이전에 학습된 모델을 다양하게 평가하는 데 사용함.

k폴드 교차 검증

가장 보편적으로 사용되는 교차 검증 기법.
먼저 k개의 데이터 폴드 세트를 만들어서 k번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법

ex) 5개의 폴드된 데이터 세트를 학습과 검증을 위한 데이터 세트로 변경하면서 5번 평가를 수행 후,
이 5개의 평가를 평균한 결과를 가지고 예측 성능을 평가.

데이터 세트를 5등분

첫번재 반복에서 처음부터 4개등분을 학습데이터 세트, 마지막 5번째 등분 하나를 검증 데이터 세트로 설정하고

학습데이터 세트에서 학습 수행, 검증 데이터 세트에서 평가를 수행

첫번째 평가를 하고나면 두번째 반복에서 다시 비슷한 학습과 평가작업을 수행.

학습데이터와 검증 데이터를 변경(처음부터 3개 등분까지, 그리고 마지막 5번째 등분을 학습데이터 세트로, 4번째 등분 하나를 검증 데이터 세트로 설정)

 뭐 대충 검증데이터 세트를 등분한 것을 맨뒤에서부터 변경해가면서 검증한다는 것임.\

이렇게 학습 데이터 세트와 검증 데이터 세트를 점진적으로 변경하면서 마지막 5번째(k)까지 학습과 검증을 수행하는 것이 바로 k폴드 교차 검증.
5개(k개)의 예측 평가를 구했으면이를 평균해서 k 폴드 평가 결과로 반영.

끝!

profile
은 여기 있어요

0개의 댓글