Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JUstory

Nearest Neighbor Classifier 본문

딥러닝

Nearest Neighbor Classifier

jueuniiiju 2024. 8. 21. 16:50

Nearest Neighbor Classifier

: 테스트 데이터에 대해 가장 가까운 학습 데이터 포인트를 k개 찾고, 해당 레이블을 사용하여 예측

 

 $$L{_1}(A,B) = \sum_{i,j}\left| A{_i,_j} - B{_i,_j}\right|$$

$$L{_2}(A,B) = \sqrt{\sum_{i,j} (A{_i,_j} - B{_i,_j})^{2}}$$

 

import numpy as np

# k = 1
class NearestNeighbor:
	def __init__(self):
    	pass
    
   def train(self, images, labels):
    	self.images = images
        self.labels = labels
        
    def predict(self, test_image):
    	min_dist = sys.maxsize
        for i in range(self.images.shape[0]): # 훈련 이미지 하나씩 돌기
        	dist = np.sum(np.abs(self.images[i, :] - test_image)) # L1거리
            if dist < min_dist:
            	min_dist = dist
                min_index = i
                
	return self.label[min_index]

 

가장 가까운 k개의 점들에게 과반수 득표를 받는다.

k가 커지면 커질수록 noise 데이터를 잘 잡아낸다. 하지만 prediction time은 오래 걸린다는 단점이 있다.