개념
데이터와 풀고자 하는 문제에 맞게 특정 거리함수를 잘 선택해야한다
DistanceFunction 하나만 바뀌어도 성능이 크게 달라진다
여러 거리 함수가 존재하고 각 거리함수별 장단점이 무엇인지 파악해야 적절한 거리함수를 사용할 수 있다
피타고라스의 정리로 정의되는 유클리드 공간에서 두 점의 직선 거리
저차원 데이터가 있고 벡터의 크기를 측정하는 것이 중요할 때 사용
값을 정규화 하지 않으면 편차가 제곱이 되게 때문에 특정 차원이 거리값에 큰 영향을 끼칠 수 있다
마지막 차원이 다리 개수 인데 악어와 개구리는 차이가 별로 없지만 뱀과 악어는 큰 차이를 보인다
이는 다리개수가 다른 차원보다 큰 영향을 끼치기 때문이다
해결방법
빨간선, 파란선, 노란선은 Manhattan Distance
초록선은 Euclidean Distance
제곱을 하지 않기 때문에 차원의 영향력을 줄일 수 있다
고차원 벡터 사이의 거리를 구할 때 Euclidean Distance보다 일반적으로 나은 것으로 알려져 있다
벡터의 내적 공식 변형
벡터의 크기는 고려하지 않고 오직 각도만 고려하고 싶은 경우
값이 -1≤ cosinesim ≤ +1 로 정해지기 때문에 다름, 중립, 동일로 해석이 가능하다
Cosine Distance = 1 - cosine_similarity
출처