-
knn_regression(k-최근접 이웃 회귀)공부/A.I 2021. 5. 10. 20:17
파이썬 라이브러리를 활용한 머신러닝(번역개정판)
사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭
books.google.co.jp
- wave데이터 셋
x축을 특성, y축을 타깃으로 한 그래프
- k-최근접 이웃 회귀
k-nn알고리즘을 사용한 회귀 분석
wave 데이터 셋을 사용한다.
이웃의 개수는 3개, sample개수는 50개이다.
KNeighborsRegressor함수의 weights매개변수가 uniform일 때는 np.mean함수를 활용해 단순 평균을 계산한다.
만약 weights매개변수가 distance일 때는 거리를 고려한 가중치 평균(average)를 계산한다.
기본 값은 uniform이다.
회귀 모델도 score함수를 사용해 모델을 평가할 수 있다.
이 때 score함수는 R^2(회귀 모델에서 예측의 적합도) 값을 반환한다.
파란 점이 훈련 데이터 포인트, 노란 점이 예측한 데이터 포인트이다.
uniform weights='uniform' 일때, 단순 평균
distance weights='distance' 일때, 가중치 평균
- 결정 계수 R^2
https://datalabbit.tistory.com/54
[회귀분석] 결정계수(R²; Coefficient of Determination)
Review 참고 포스팅 : 2020/09/27 - [Statistics/Regression Analysis] - [회귀분석] ANOVA(분산분석)를 이용한 회귀분석 접근 (1) - 제곱합(Sum of Squares) 2020/09/29 - [Statistics/Regression Analysis] - [..
datalabbit.tistory.com
- 코드
#from IPython.display import display import numpy as np import pandas as pd import mglearn import matplotlib.pyplot as plt import sklearn from sklearn.neighbors import KNeighborsRegressor X, y = mglearn.datasets.make_wave(n_samples=50) #print(X,y) X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, random_state=0) reg = KNeighborsRegressor(n_neighbors=3, weights='distance') reg.fit(X_train, y_train) result = reg.predict(X_test) print("테스트 세트 예측 : ", result) print("점수(R제곱값) : %2f" %reg.score(X_test, y_test)) plt.plot(X_train, y_train, 'o') plt.plot(X_test, result, 'o') plt.ylim(-3, 3) plt.xlabel("feature") plt.ylabel("target")
'공부 > A.I' 카테고리의 다른 글
[Linear model]리지 회귀 (0) 2021.05.12 [Linear model]선형회귀(최소제곱법) (0) 2021.05.11 복잡도와 일반화 사이의 관계 (0) 2021.05.10 forge데이터셋 (0) 2021.05.09 지도 학습 데이터. (0) 2021.05.09