알고리즘 원리
1. 예측할 데이터와 실제 데이터의 거리를 계산
2. 거리가 가까운 K개의 데이터를 선택
3. K개의 데이터의 평균을 계산 후 값 예측(분류)
import pandas as pd
X = pd.DataFrame({'컬럼1': [A, B, C], '컬럼2': [가, 나, 다], '컬럼3': [12, 4, 5]})
가변수화_대상 = ['컬럼1', '컬럼2']
X = pd.get_dummies(data = X, columns=가변수화_대상, drop_first=True)
from preprocessing import MinMaxScaler, StandardScaler
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=.3)
# 에시로 MinMaxScaler만 적용
scaler = MinMaxScaer()
X_train = scaler.fit_transform(X_train)
X_val = scaler.transform(X_val)
기본 계산법은 민코프스키(minkowski) 이지만 유클리드(Euclidean), 맨해튼(cityblock), 체비쇼브(chevyshev) 방식 등 여러가지 계산법이 있고
그에 따라 성능이 달라질 수 있따.
종류 | 설명 |
---|---|
StandardScaler | 기본 스케일. 평균과 표준편차 사용 |
MinMaxScaler | 최대/최소값이 각각 1, 0이 되도록 스케일링 |
MaxAbsScaler | 최대절대값과 0이 각각 1, 0이 되도록 스케일링 |
RobustScaler | 중앙값(median)과 IQR(interquartile range) 사용. 아웃라이어의 영향을 최소화 |