관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

데이터 다루기 5 - 훈련 세트와 테스트 세트 심화 학습 본문

인공지능/머신러닝

데이터 다루기 5 - 훈련 세트와 테스트 세트 심화 학습

huenuri 2024. 10. 1. 21:36

이어서 훈련 세트와 테스트 세트도 심화 학습을 진행해보려고 한다.


 

 

 

훈련 세트와 테스트 세트 실습해보기

 


 

 

 


 

 

 

슬라이싱 연산으로 인덱스 0~34까지 처음 35개 샘플을 훈련 세트로 선택했고, 인덱스 35~48까지 나머지 14개의 샘플을 테스트 세트로 선택했다. 모델을 훈련하고 평가하는데 정확도가 0이 나왔다. 무엇이 잘못된 걸까?


 

 

 

이는 훈련 세트와 테스트 세트에 샘플이 골고루 섞여 있지 않고 샘플링이 한쪽으로 치우쳤기 때문이다. 넘파이 를 사용해 이 작업을 진행해볼 것이다.

 

 

넘파이는 배열의 차원을 구분하기 쉽도록 행과 열을 가지런히 출력한다. 출력 결과 49개의 행과 2개의 열을 쉽게 확인할 수 있다.

 

 

여기서는 배열을 섞은 후 나누는 방식 대신 무작위로 샘플을 고르는 방법을 사용하겠다. 주의할 점은 타깃과 샘플은 같은 위치에서 선택되어 이동해야 한다.

 

 

이제 샘플이 잘 섞였는지 확인하기 위해 산점도 그래프를 그려본다.


 

 

 

 

주피터 노트북과는 다르게 주의사항이 표시된다. 오류 메시지인줄 알았는데 그냥 사용 팁을 표시하는 거였다.

 

양쪽에 도미와빙어가 모두 잘 섞여있음을 볼 수 있다. 이제 이 모델을 다시 훈련시킬 것이다.


 

 

 

 

 

훈련 결과 테스트 세트의 test_target의 출력과 동일하게 array()로 감싸있다. 이 값은 넘파이 배열을 의미한다. 이번 시간에는 도미와 빙어를 골고루 섞어 나누기 위해 파이썬의 다차원 배열 라이브러리인 넘파이를 사용했다. 넘파이는 리스트와 비슷하지만 고차원의 큰 배열을 효과적으로 다룰 수 있고 다양한 도구를 많이 제공한다.

 


 

 

 

학습을 마치고

여기까지는 그래도 내용이 많이 어렵지 않았다. 어떤 코드인지 모르는 것 없이 확실하게 알고 넘어가니 정말 좋은 것 같다. 원래 딥러닝을 공부하기 전에 머신러닝에 대해 어느 정도 이해가 있어야 한다. 오늘은 새벽에 계속 머신러닝 공부를 이어가려고 한다.