본문 바로가기

Python/ML

알고리즘 이해하기 - 유클리드 거리

'거리' 개념은 유사도(Similarity)를 파악하기 위해 많이 쓰입니다.

대표적으로 머신러닝의 K-최근접 이웃(K-Nearest Neighbor) 알고리즘에서 많이 볼 수 있습니다.

 

오늘은 유클리드 거리에 대해 알아보겠습니다.

 


 

1. 유클리드 거리 (Euclidean Distance)

 

 

유클리드 거리두 점 사이의 거리를 계산할 때 흔히 쓰는 방법입니다.

 

2차원

 

다차원

 

 

공식을 보면 피타고라스의 정의와 같음을 알 수 있습니다. 

 

 

예시는 2차원이지만 차원수가 늘어난다면 각 차원의 차이의 제곱 합의 제곱근이 됩니다.

 

 

파이썬으로 구현해보겠습니다.

 

🔷 코드

def euclidean_distance(x1, x2):
    distance = 0
    for i in range(len(x1)):
        distance += (x1[i] - x2[i]) **2
        
    return math.sqrt(float(distance))

 

🔷 적용

euclidean_distance([2,3,4], [10,11,12])

 

🔷 결과