본문 바로가기

메이플의 개발 스토리

[머신러닝] 훈련 세트와 테스트 세트 본문

ML DL

[머신러닝] 훈련 세트와 테스트 세트

mapled 2021. 12. 19. 19:22

안녕하세요. 메이플입니다.

해당 포스팅은 혼자 공부하는 머신러닝+딥러닝 책을 교재로 스터디한 내용을 정리한 내용입니다.

보다 자세한 내용은 책을 참고해주시기 바랍니다.


아래 포스팅과 이어지는 글입니다. 

 - [머신러닝 스터디] 인공지능, 딥러닝, 머신러닝이란?

 - [머신러닝 스터디] 맷플롯립을 통해 데이터의 산점도 출력

 - [머신러닝 스터디] numpy 패키지

 - [머신러닝 스터디] 사이킷런으로 K-NN 알고리즘


머신러닝 키워드

머신러닝 알고리즘의 분류

- 지도 학습(supervised learning) : 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는데 활용

- 비지도 학습(unsupervised learning) : 타깃 데이터가 없음. 입력 데이터에서 어떤 특징을 찾는 데 주로 활용

- 강화 학습(reinforcement learning) : 타깃이 아닌 알고리즘이 행동한 결과로 얻은 보상을 사용해 학습

 

지도 학습에서는 데이터와 정답을 입력(input)과 타깃(target)이라 하고, 이 둘을 합쳐 훈련 데이터(training data)라고 부른다.

훈련 데이터(training data) 분류

- 훈련 세트 : 모델을 훈련할 때 사용하는 데이터로 클수록 좋음

- 테스트 세트 : 전제 데이터의 20~30%를 테스트 세트로 사용

 

샘플(sample) : 하나의 입력 데이터

- 샘플링 편향 : 훈련 세트와 테스트 세트의 샘플이 골고루 섞여 있지 않아서 샘플링이 한쪽으로 치우친 경우

 


아래 예시를 실행하기 전 사전 코드


사이킷런으로 훈련 세트와 테스트 세트 나누기

scikit-learn 패키지

- train_test_split() : 훈련 데이터를 훈련 세트와 테스트 세트로 나누는 함수

stratify 매개변수로 클래스 레이블에 담긴 배열을 전달하면 클래스 비율에 맞게 훈련 세트와 테스트 세트를 나눔

아래와 같이 훈련 세트로 훈련을 시키고 테스트 세트로 정확도를 확인할 수 있다.

 

Comments