
10/16 1, 2, 3세션
k개의 초근접 이웃

K = 1 : 이웃이 하나. 너무 편향된 정보다. 예민한 (복잡한) 모델이 됨.K = 데이터 개수 : 회귀에서는 평균, 분류에서는 최빈값으로 예측한다.
sklearn.preprocessing import MinMaxScaler 사용# 모듈 불러오기
from sklearn.preprocessing import MinMaxScaler
# 정규화
scaler = MinMaxScaler()
scaler.fit(x_train) # 학습 데이터의 최소값, 최대값 찾는 과정
x_train_s = scaler.transform(x_train) # 학습 데이터 정규화
x_test_s = scaler.transform(x_test) # 테스트 데이터 정규화
# 다른 방법 - fit(x_train) 생략
# x_train_s = scaler.fit_transform(x_train) # 피팅 후 정규화 진행
# x_test_s = scaler.transform(x_test)
from sklearn.preprocessing import StandardScaler 사용from sklearn.preprocessing import StandardScaler
# 정규화
scaler = StandardScaler()
x_train = scaler.fit_transform(x_train) # 학습 데이터 정규화
x_test = scaler.transform(x_test) # 테스트 데이터 정규화
# 1단계: 불러오기
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_absolute_error, r2_score
# 2단계: 선언하기
model = KNeighborsRegressor()
# 3단계: 학습하기
model.fit(x_train, y_train)
# 4단계 예측하기
y_pred = model.predict(x_test)
# 5단계: 평가하기
print('MAE :', mean_absolute_error(y_test, y_pred))
print('R2 :', r2_score(y_test, y_pred))