딥러닝

0802 keras 실습 [초음파 광물 예측] - 과적합 피하기

피곤핑 2019. 8. 2. 16:55

WOW..!?

 

과적합 이해하기

층이 너무 많거나 변수가 복잡하거나 테스트셋과 학습셋이 중복될 때 생김

-> 데이터셋과 테스트셋으로 나눠서 하는 것이 좋음

 

* 코드 추가

 - model.save() 를 통해서 현재 모델을 저장하고 새로운 데이터에 사용 할 수 있음

 - del model을 하는 이유는 혹시나 오류날까봐,, del 한뒤에 다시 load하여 모델을 사용함

반드시 먼저 import 시켜주어야함 

 * 결과화면

 => 앞서 가지고 있는 데이터의 약 70%를 학습셋으로 써야 했으므로 테스트 셋은 겨우 전체 데이터의 30%에 그침

 => 이 정도 테스트 만으로는 실제로 얼마나 잘 작동하는지 확신하기 쉽지않음

 

k 겹 교차검증

이러한 단점을 보완하고자 만든 방법!

 - 데이터셋을 여러개로 나누어 하나씩 테스트셋으로 사용하고 나머지를 모두 합해서 학습셋으로 사용하는법!

 - 각 Hyperparamer의 k개의 결과에 대한 평균을 계산하여 이 평균값을 각 Hyperaparameter로 지정.

   -> 이 하이퍼 파라미터의 따라서 성능을 더 끌어올릴 수 있음! 

 - 이렇게하면 가지고 있는 데이터의 100%를 테스트셋으로 사용할 수 있음!

 => shuffle=True 하는 이유

섞지않으면 같은 뭉텅이들이 사용될 수있으므로 shuffle해줌. 

 

 * 코드 수정

* 실행화면