K-Nearest Neigbor
데이터를 가장 가까운 거리의 k개의 이웃과 비교하여 결정하는 알고리즘으로
k의 값이 커지면 커질수록 전체평균에 가까워진다
거리를 계산 할 때 데이터의 크기를 기준으로 거리를 계산하기 때문에
만약 입력 데이터와 예측 데이터의 크기 범위가 다르다면 서로의 거리 계산이 달라 질 수 있기 때문에
데이터의 정규화가 필요하다
데이터의 정규화
https://bigcat5312.tistory.com/80
파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split
import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 데이터를 무작위로 분리하는 함수로 train_test_split(x , y, test_size = or train_siz
bigcat5312.tistory.com
코드를 사용하여 x_train , x_test를 가지고 있는 상태로
학습시킬 데이터인 x_train을 기준으로 정규화를 진행한다
정규화 공식은 (x - xmin ) / (xmax -xmin)이다
x_min = x_train.min()
x_max = x_train.max()
x_train = (x_train - x_min) / (x_max - x_min)
x_test = (x_test - x_min) / (x_max - x_min)
으로 직접 구해도 되고
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(x_train)
x_train = scaler.transform(x_train)
x_test = scaler.transform(x_test)
MinMaxScaler 함수를 사용해도 된다
모델링
분류
from sklearn.neighbors import KNeighborsClassifier
회귀
from sklearn.neighbors import KNeighborsRegressor
코드로 임포트 한 다음
#회귀
model = KNeighborsRegressor(n_neighbors = , weights= , algorithm= , p= , metric = )
#분류
model = KNeighborsClassifier(n_neighbors = , weights= , algorithm= , p= , metric = )
로 모델을 선언한다
각각 파라미터는
- n_neighbors: 이웃 수를 지정 기본값 5
- weights: 예측에 사용되는 가중치 함수를 지정 - 'uniform' (모든 포인트에 동일한 가중치), 'distance' (거리에 반비례하는 가중치), 사용자 정의 , 기본값 = uniform
- algorithm: 가장 가까운 이웃을 계산하기 위해 사용되는 알고리즘을 지정 ('auto', 'ball_tree', 'kd_tree', 'brute' 중에서 선택). 기본값 = auto
- p: 거리 측정 방법을 결정하는 파라미터 (1: 맨해튼 거리, 2: 유클리드 거리) 기본값 = 2
- metric: 트리에 사용할 거리 메트릭을 지정("manhattan","chebyshev","euclidean" , "minkowski") 기본값="euclidean"
이다 만약 기본 설정을 그대로 쓸 생각이라면 그냥 함수명()으로 선언해도 된다
학습 및 예측
model.fit(x_train, y_train)
fit매소드로 학습을 시킬 수 있다
이후
y_pred = model.predict(x_test)
코드를 사용하여 완성된 모델에 x_test를 넣어 예측값을 생성 할 수 있다
평가
from sklearn.metrics import *
코드로 평가 함수들을 임포트 한 다음
https://bigcat5312.tistory.com/77
머신러닝 지도학습 - 회귀와 분류, 분석도구
회귀(Regression) 이미 결과값이 있는 데이터를 사용하여 연관성을 찾아 연속적인 숫자를 예측해 내는 것 ex) 집값 분석도구 평가도구 LinearRegression KNeighborsRegressor DecisionTreeRegressor RandomForestRegressor XG
bigcat5312.tistory.com
게시글을 참고하여 원하는 평가함수(y_test , y_pred)를 사용해 평가 할 수 있다
'파이썬 > 머신러닝-지도학습' 카테고리의 다른 글
파이썬 머신러닝 지도학습 - Logistic Regression(로지스틱 회귀) (분류) (0) | 2023.09.16 |
---|---|
파이썬 머신러닝 지도학습 - Decision Tree(결정 트리) (분류, 회귀) (0) | 2023.09.16 |
파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split (0) | 2023.09.16 |
머신러닝 지도학습 - 분류모델 성능 평가 데이터의 이해 - sklearn.metrics (0) | 2023.09.16 |
머신러닝 지도학습 - 회귀모델 성능 평가 데이터의 이해-sklearn.metrics (0) | 2023.09.16 |