-
ML Intro | Iris Analysis - Training Data & Testing DataMachine Learning/ML with Python Library 2024. 1. 24. 22:05
지난번, 데이터 적재 과정을 마지고 나서, 이제 본격적으로 데이터를 전처리하는 과정으로 넘어가보자. 어떤 전처리가 필요할까? 지도학습을 완성시키기 위해서는 모델을 트레이닝하는것도 중요하지만, 테스팅 데이터를 따로 준비해두고, 트레이닝한 모델의 성능이 얼마나 좋은지를 판단할 수 있도록 하는 과정도 꼭 필요하다.
여기서 중요한점이 있다. 바로 모델을 만들 때 쓴 데이터는 평가 목적으로 사용하지 말아야한다는 것이다. 만약 트레이닝 데이터와 테스팅 데이터가 일치한다면, 새로운 사항들이 주어졌을 때, 이 모델은 어떠한 새로운것에 대해서는 잘 작동하지 않을수도 있다.
그렇기 때문에 우리가 가진 150개의 데이터를 두 그룹으로 나눈다. 하나는 모델을 만들 때 사용하며, 이것을 훈련 데이터(Training Data) 또는 훈련 세트(Training Set)라고 한다. 그리고 나머지 한 그룹은 이 모델의 성능을 측정하는 데 사용하며, 이를 테스트 데이터(Test Data), 테스트 세트(Test Set), 또는 홀드아웃 세트(Hold-out Set)라고 부른다.
희소식이 있다.
https://giphy.com/explore/happy-pikachu scikit-learn은 데이터셋을 섞어서 나눠주는 train_test_split 함수를 제공하기 때문에, 우리가 일일히 이 작업을 하지 않아도 된다. 이 함수는 임의로 75%를 훈련세트로 뽑고, 나머지 25%는 테스트 세트가 된다. 이 훈련과 테스트세트의 비율은 지금은 3:1인데, 이는 일반적으로 좋은 선택이고, 상황에 따라 바꾸기도 한다.
그럼 지난시간, 했던 코드에 이어서 트레이닝/테스트 데이터를 만들어보자.
https://colab.research.google.com/drive/1ISPKQ-D2bGmJvDlqhqTieOUz-1ujrXbu?usp=sharing
_01_iris_ml_model.ipynb
Colaboratory notebook
colab.research.google.com
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( iris_dataset['data'], iris_dataset['target'], random_state=0 )
여기서 x_train, x_test, y_train, y_test 이 네개의 벡터에 각각의 feature데이터와 target데이터가 train 75%, test 25%의 비율로 섞어서 들어가게 된다. 여기에서 random_state는 다큐먼트에도 나와있지만, 이 값들을 나누기 전에 카드를 섞는것처럼 섞는것인데, 섞을 때 필요한 난수의 초기값을 설정하는것이다. 이렇게 하면 이 함수를 여러번 실행해도 결과가 똑같이 나오게 된다. 그러면 이제 생성된 트레이닝 그리고 테스트 데이터를 살펴보자.
print("x_train size:", x_train.shape) print("x_test size:", x_test.shape) print("y_train size:", y_train.shape) print("y_test size:", y_test.shape)
x_train size: (112, 4) x_test size: (38, 4) y_train size: (112,) y_test size: (38,)
150을 4등분 하게되면 37.5, 그것을 3:1 비율로 하면 대략 112:38이 된다. x는 feature가 4개씩이기 때문에 112,4 그리고 38,4 사이즈의 벡터가 각각 생성되었고, y는 한개의 target값을 갖고있기 때문에 row가 하나인 112, 38 사이즈의 벡터가 생성되었다.
실제 이 벡터들에 값이 어떻게 들어가있는지도 확인할 수 있다.
print("x_train:\n", x_train) print("\nx_test\n", x_test) print("\ny_train size:\n", y_train) print("\ny_test size:\n", y_test)
Reference
https://www.yes24.com/Product/Goods/42806875
파이썬 라이브러리를 활용한 머신러닝 - 예스24
사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없다. 사이킷런(scikit-learn)과 같은 훌륭한 머신
www.yes24.com
'Machine Learning > ML with Python Library' 카테고리의 다른 글
ML Intro | Iris Analysis - Prediction (0) 2024.01.27 ML Intro | Iris Analysis - K-Nearest Neighbors(KNN) Model (1) 2024.01.27 ML Intro | Iris Analysis - Look at your Data (2) 2024.01.27 ML Intro | Iris Analysis - Import Data and Check (1) 2024.01.23 Introduction to Machine Learning with Python (0) 2024.01.22