본문 바로가기

머신러닝

KNN 알고리즘

 

목차 

1. KNN 알고리즘 개념 

2. 거리의 유사도 측정 

3. KNN 모델 코드 

 

1. KNN 알고리즘 개념

KNN 알고리즘은 머신러닝 학습 종류 중 지도학습(정답이 있는 데이터로 기계 학습) 에 해당한다.

KNN(K-최근접 이웃)은 K개의 일부 훈련 샘플까지의 거리를 기준으로 분류를 수행하는 알고리즘이다.

인스턴스 기반 학습

학습될 파라미터가 없는 KNN같은 알고리즘 종류를 인스턴스 기반 학습이라고 한다.

KNN 모델은 추론하기에 충분한 거리가 존재한다고 가정한다. 만약 그렇지 않다면 데이터나 

데이터 분포에 대한 어떤 추정도 할 수 없다.

 

적절한 k 값 선택하기

KNN은 다수결의 원칙을 따르므로 K는 홀수개여야한다!

K가 너무크면 항상 대다수를 차지하는 클래스를 예측하고 ,

K가 너무 작으면 이상치가 너무 큰 영향을 미칠 수 있으므로 최적의 K값을 찾는 게 중요! 

(적절한 K갑은 모델 개발자가 직접 알아내야한다)

 

 

2. 거리 계산할 때 사용하는 수학식 

유클리드 거리

유클리드 거리 계산식

 

3. KNN 모델 코드 

from sklearn.neighbors import KNeighborsClassifier

#KNN 모델 생성
model=KNeighborsClassifier(n_neighbors=5) #적절한 K값은 모델 설계자가 알아내기

#모델 훈련
model.fix(x_train,y_train)

#훈련된 모델로 테스트 데이터 예측
result=model.predict(x_test)
result   # array(['M', 'M', 'M', 'M', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B',..
         # 테스트 데이터 예측값 출력
# 모델 평가(정확도)
from sklearn.metrics import accuracy_score

accuracy=accuracy_score(y_test,result)
accuracy

 

 

'머신러닝' 카테고리의 다른 글

의사결정트리 이론  (1) 2022.10.22
나이브 베이즈란  (2) 2022.10.15
머신러닝과 딥러닝 알고리즘  (1) 2022.10.08
인공지능, 머신러닝, 딥러닝 개념  (0) 2022.10.08