K-최근접 이웃 모델로 길이, 무게 데이터로 이웃을 판단할때 두 특성간의 스케일 차이로 인해 올바른 예측이 불가능하다. 이 모델은 그래프상 기준 위치의 값과 가까운 데이터들의 많음이 어떠냐에 따라 정답을 예측하는데 무게의 기준값의 범위가 0 - 1,000g, 길이의 경우 0 - 40cm라면 길이의 대한 거리값이 얼마든 정답을 예측하는데 거의 영향을 미치지 못한다. 거리기반 모델의 경우일때 이런 경향이 더 심하다. 그렇기 때문에 각 특성값을 인정한기준으로 표준화를 해주어야 하고 이러한 작업을 "데이터 전처리" 라고 정의한다.
표준점수는 각 특성값의 크기와 상관 없이 표준편차의 몇배 만큼 떨어져 있는지를 나타내기 때문에 동일한 기준으로 비교가 가능하다. 넘파이에서 제공을 해주기 때문에 간단히 이용가능하지만 가물가물한 개념때문에 표준 편차(링크)에 대해서 간단히 정리해 봤다.
표준 점수는 넘파이를 이용해 간단하게 구할수 있다.
import numpy as np
#평균
mean = np.mean(train_input, axis=0)
#표준편차
std = np.std(train_input, axis=0)
#각 특성의 표준점수
train_sacled = (train_input - mean) /std
당연한 이야기겠지만, 전처리 데이터를 이용해서 모델을 훈련했을 경우, 테스트데이터 셋이나 판단한 데이터들도 훈련데이터와 동일한 전처리 기준을 이용하여 변환한 후 판단에 이용해야한다.