K-Fold 교차 검증이란 뭔가

    [교차검증은 뭔가]

     

    - Cross-Validation 이라고도 함

     

    - 머신러닝 모델을 설계 할 때 필요한 파라미터를 Hyperparameter 가 필요한데 얘를 튜닝해주는 거

             -----> 하이퍼파라미터가 뭔지 모르겠지만 일단 w, b 같은거겠거니 하고 넘어감

       > 모델에 따라서 필요한  Hyperparameter 가 한 둘이 아닐것임

       > 그런데 이 Hyperparameter가 서로 영향을 주고받는다던지 엄청 많다던지 하면 튜닝하기가 엄청 복잡함

       > 요것을 튜닝해주는 방법이 여러가지인데 그 중에 하나가 교차검증이고 그 중에 K-Fold 교차검증이란 것이 있다고 한다.

     

    - 오버피팅을 막는 효과도 있음 (사실 이것이 교차검증하는 제일 중요한 이유)

       > 오버피팅이란 모델을 똑똑하게 만들 때 학습 데이터를 막 넣어서 똑똑하게 만드는데

          얘가 학습데이터에 너무 심취해서 학습 데이터는 판별을 엄청 잘하는데 실제 다른 이미지 들고와서 판별하라고 하면 잘 못하는 현상

            -> 모델을 여기저기 쓸 수 있게 해야하는데 학습 데이터만 판별을 잘하니까 무쓸모 됨.'

     

    - 데이터를 테스트 데이터랑 검증 데이터로 나눠서 테스트 데이터로 학습시키고 검증 데이터로 검증하는 방식

     

    [ K-Fold 교차 검증]

     

    - 이 교차 방식은 학습 데이터를  K개의 폴드로 나눠서 교차검증하는 방식이다.

     

    - 데이터는 다음과 같이 나눈다

      [데이터]

           |-----[학습데이터]

           |             |----- 폴드 1 데이터

           |             |----- 폴드 2 데이터

           |             |-----(....)

           |              |----- 폴드 k 데이터

          |-------[검증데이터] 

     

    - 학 데이터. K개 폴드 데이터로 나눔


    - 각 폴드별로 데이터 분류하는 방식은 랜덤


    - 여기서 1부터 k-1개까지  테스트 폴드라고 하고, 제 마지막꺼(k번째 폴드) 검증용 폴드라고 정한다.


    - 교차 검증 순서


    1. 튜닝할 hyperparameter 정하기

    2. 학습데이터] - 폴드1 데이터 학습시키기

    3. 폴드 k 데이터 검증하기

    4. 검증하며 하이퍼파라미터가 나 --->  과정을  모르겠음어떻게 하이퍼파라미터가 나오나. 일단 모르겠으니 나오는가보다 하고 넘어감

    5. 2번부터 4번까지 반복함. 1 폴드 했으니까 이제 2 폴드 학습시킥고  k폴드로 검증함

    6. 나머지 폴드에 대해서 반복함.  K 폴드로 나눴으니까 k-1 반복함(마지먹거는 검증용이니까 뺀다)

    7. 폴드 하나 학습시키고 검증할 때마다  세트 하이퍼파라미터가 나

    8. K-1 반복했으니까 하이퍼파라미 세트도 k-1 나올것임

    9. 각 하이퍼파라미터 세트에 대해 평균을 구한다

    10. 평균을 구 평균하이퍼파라미터를 검증데이터(k폴드에 있는 검증용 폴드 말고  첨에 학/검증 데이터 나  중에 그거)  검증한다.


[아직 모르는 것]
- 실제 파이썬 코드에서 어떻게 쓰나


  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
TODAY TOTAL