1. 훈련 세트와 테스트 세트
<지도 학습과 비지도 학습>
- 지도 학습 : 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는데 활용
- 비지도 학습 : 타깃 데이터 없이, 입력 데이터에서 어떤 특징을 찾는데 주로 활용
<훈련 세트와 테스트 세트>
- 훈련 세트(train set) : 훈련에 사용되는 데이터,입력(데이터) + 타깃(정답)
- 테스트 세트(test set) : 평가에 사용하는 데이터
- 머신러닝의 정확한 평가를 위해서는 테스트 세트와 훈련세트가 따로 준비되어 있는게 좋다.
<샘플링 편향>
- 샘플링 편향 : 훈련세트와 테스트세트가 골고루 섞여있지 않아 샘플링이 한쪽으로만 치우친 상태
- 특정 종류의 샘플이 과도하게 많은 샘플링 편향을 가지고 있다면 제대로 된 지도 학습 모델을 만들 수 없다.
<샘플링 편향을 없애는 방법>
1) 넘파이 활용(다른 방법도 있으나 일단 2장에 소개된 방법으로 설명함)
import numpy as np
input_arr = np.array(fish_data)
target_arr = np.array(fish_target)
np.random.seed(42)
index = np.arange(49)
np.random.shuffle(index)
train_input = input_arr[index[:35]]
train_target = target_arr[index[:35]]
test_input = input_arr[index[35:]]
test_target = target_arr[index[35:]]
- index를 arange로 만들어서 shuffle하는 방식을 사용한다.
- 35개를 train set으로 15개를 test set으로 설정해 만들었다.
import matplotlib.pyplot as plt
plt.scatter(train_input[:,0],train_input[:,1])
plt.scatter(test_input[:,0],test_input[:,1])
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
- 실제 잘 섞였는지를 확인해보면 제대로 섞여있음을 확인할 수 있다. (파란색이 train, 주황색이 test)
2) 사이킷런 활용
from sklearn.,odel_selection import train_test_split
train_input,test_input,train_target,test_target = train_test_split(fish_data,fish_target,random_state=42)
- train_test_split() : 훈련 데이터를 훈련 세트와 테스트 세트로 나누는 함수, 여러개의 배열을 전달할 수 있다
- 테스트 세트로 나눌 비율은 test_size 매개변수로 지정할 수 있으며 기본값은 0.25(25%)이다.
- shuffle 메개변수로 훈련세트와 테스트 세트로 나누기 전에 무작위로 섞을지를 결정할 수 있으며 기본값은 True이다.
- stratify 매개변수에 클래스 테이블이 담긴 배열을 전달하면 클래스 비율에 맞게 훈련 세트와 테스트 데이터를 나눈다.(기본적으로 타깃데이터가 클래스 테이블이 된다)
2. 데이터 전처리
- 데이터 전처리 : 머신러닝 모델에 훈련 데이터를 주입하기 전에 가공하는 단계, 많은 시간이 소모되기도 한다.
- 각각의 특성의 값이 놓인 범위가 매우 다르다 = 특성의 스케일이 다르다.
- 특성의 스케일이 다르면 머신러닝 알고리즘을 예측하기 힘드므로, 특성을 일정한 기준으로 맞춰줘야 한다.
- 표준점수(z점수) : 훈련 세트의 스케일을 바꾸는 대표적인 방법 중 하나, 특성의 평균을 빼고 표준편차로 나눈 값.
※ 반드시 훈련세트의 평균과 표준편차로 테스트세트를 바꿔야 한다.
- 브로드캐스팅 : 크기가 다른 넘파이 배열에서 자동으로 사칙 연산을 모든 행이나 열로 확장하여 수행하는 기능
'혼공단 > 혼공단 5기' 카테고리의 다른 글
혼자 공부하는 머신러닝 + 딥러닝 3장 - 특성 공학과 규제 (0) | 2021.02.04 |
---|---|
혼자 공부하는 머신러닝 + 딥러닝 3장 - 선형 회귀 (0) | 2021.02.02 |
혼자 공부하는 머신러닝 + 딥러닝 3장 - k-최근접 이웃 회귀 (0) | 2021.02.01 |
[혼공단 5기] 혼자 공부하는 머신러닝 + 딥러닝 1주차 후기 및 미션 인증 (0) | 2021.01.29 |
혼자 공부하는 머신러닝 + 딥러닝 1장 - 머신러닝 예제연습(K-최근접 이웃) (0) | 2021.01.28 |