본문 바로가기
ML & DL/혼자 공부하는 머신러닝+딥러닝

머신 러닝의 훈련 세트와 테스트 세트

by Glory_Choi 2022. 7. 11.
반응형

https://glorychoi.tistory.com/entry/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EB%94%A5%EB%9F%AC%EB%8B%9D

 

혼자 공부하는 머신러닝+딥러닝

생선 분류 문제 *도미와 빙어 구분 각 도미와 빙어의 특징을 특성이라고 한다. 아래 설명은 두 가지 특징(길이, 무게)를 사용하여 설명한다. 도미 데이터 준비 산점도 길이를 x축으로 하고 무게를

glorychoi.tistory.com

생성 분류 문제를 공부했을때 머신러닝 프로그램에서는 문제점이 존재했는데 그 문제점은 도미 35마리와 빙어 14마리를 모두 저장하고 맞추는 것이다.

오늘 공부를 통해 이 부분을 개선하고 좀 더 나은 프로그램을 작성할 수 있다.

 

머신러닝 알고리즘

 

머신러닝 알고리즘은 크게 지도 학습(supervised learning), 비지도(unsupervised learning) 학습과 강화 학습으로 나눌수 있다.

 

그 중 지도 학습 알고리즘은 훈련하기 위한 데이터와 정답이 필요하다.

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

그리고 입력으로 사용된 길이와 무게를 특성이라고 한다.

지도 학습은 정답이 있으니 알고리즘이 정답을 맞히는 것을 학습한다. 예를 들어 도미인지 빙어인지 구분하는 것이다.

 

반면 비지도 학습 알고리즘은 타깃 없이 입력 데이터만 사용한다.

때문에 비지도 학습 알고리즘은 정답을 사용하지 않으므로 무언가를 맞힐 수 없고, 데이터를 잘 파악하거나 변형하는데 도움을 준다.

 

강화학습은 타깃이 아니라 알고리즘을 행동한 결과로 얻은 보상을 사용해 학습된다.

 

훈련 세트와 테스트 세트

 

평가에 사용하는 데이터를 테스트 세트, 훈련에 사용되는 데이터를 훈련 세트라 부른다.

하나의 생선 데이터를 샘플이라고 부른다. 도미와 빙어는 각각 35마리, 14마리가 있으므로 전체 데이터는 49개의 샘플이 있다. 사용하는 특성은 길이와 무게 2개이고, 이 데이터의 처음 35개를 훈련 세트로. 나머지 14개를 테스트 세트로 사용하면 테스트 세트안에 도미가 존재하지 않으므로 정확도가 0이 된다. 샘플이 골고루 섞여 있지 않으면 샘플링이 한쪽으로 치우쳤다는 의미로 샘플링 편향이라고 한다.

 

넘파이

 

넘파이는 파이썬의 대표적인 배열 array 라이브러리입니다. 넘파이는 고차원의 배열을 손쉽게 만들고 조작할 수 있는 간편한 도구를 많이 제공합니다.

 

두번째 머신러닝 프로그램

 

 

생선의 길이와 무게를 담은 데이터를 준비해주고 하나의 리스트로 담은 2차원 리스트를 만든다.

 

 

파이썬의 리스트를 넘파일 배열로 바꿔야 하는데 이때 넘파이 array() 함수에 파이썬 리스트를 전단하면 끝이다.

 

 

간단한 코드를 통해 파이선의 리스트를 넘파이 배열로 바꾸었다.

 

넘파이 배열 객체는 배열의 크기를 알려주는 shape 속성도 제공한다. 우리는 49개의 샘플과 2개의 특성이 있다.

 

 

훈련 세트와 테스트 세트를 나누기 위해서 무작위로 샘플을 고르는 방법을 사용한다.

 

 

넘파이의 arange() 함수에 정수 N을 전달하면 0에서부터 N-1까지 1씩 증가하는 배열을 만들어준다.

넘파이 random 패키지 아래에 있는 shuffle() 함수는 주어진 배열을 무작위로 섞는다.

 

넘파이는 슬라이싱 외의 배열 인덱싱array indexing이란 기능을 제공한다.

 

 

산점도를 통해 확인 해보겠다.

골고루 퍼져있는것을 확인할 수 있다.

 

 

사이킷런을 활용하여 모델을 학습시킨 결과 예측 결과가 정답과 일치한다.

 

회고

아직 완변한 프로그램을 구성하지는 못했지만 첫번째 프로그램에 비해 그럴싸한 프로그램을 작성하였다.

반응형