KNN 알고리즘 개념 k최근접 알고리즘(k-nearest neighbors algorithm, KNN) 알고리즘은 분류(classify) 문제에도 사용할 수 있고, 회귀(Regression) 문제에도 사용할 수 있으며, 수많은 알고리즘의 중간 과정(예를 들어 추천 알고리즘인 CF에서도 사용)에서도 자주 쓰이는 알고리즘이다. KNN의 k라는 것은 숫자를 뜻하며 여기에 숫자는 이웃이고, k만큼의 이웃을 지정하여 그 이웃들의 값을 토대로 계산한다. KNN은 쉽게 생각하면 유사 알고리즘과 같다 컬럼별로 유사한 이웃들을 찾아서 값을 계산하고, 이를 통해 최종적으로 분류 및 회귀 문제를 풀기 때문이다. 키와 몸무게를 기반으로 헌병과 그외의 보직을 예측한다고 가정을 해보자. 이는 실제 데이터가 아니라 어디까지나 예시..
맨하탄 거리(Manhattan Distance) 혹은 맨해튼 거리는 유클리드 거리(Euclidean Distance)와 함께 매우 기초적인 좌표간의 거리를 구하는 방식이다. 이름에서 뉘앙스가 풍기겠지만, 이 맨하탄은 미국 뉴욕시 행정 구역인 그 맨하탄이 맞다. 맨하탄은 인류 최초의 현대 대도시로 불리며, 맨하탄의 상징적인 이미지는 빌딩숲의 이미지이다. 그러다보니 지금은 매우 흔한 모습이지만, 주먹구구식 그리고 계획적이지 않던 기존의 도시와 달리 매우 체계적이고 계획적이다보니 건물들이 사각형으로 촘촘히 체계적으로 이루어진 잘 정돈된 모습으로 알고리즘 이름을 부여받게 되었다. 맨하탄 거리는 L1 Distance라고도 불린다. L2 Distance가 유클리드 거리인데 그만큼 유클리드보다 공식이 더 쉽기 때문이..
유클리디안 거리(Euclidean Distance) 혹은 유클리드 거리는 매우 심플하고, 베이직한 값들간의 거리를 구하는 알고리즘이다. 이틀 토대로 값들간의 유사도를 구할 수 있어서 유클리디안 거리로 유사도를 측정하는 방식을 유클리디안 유사도(Euclidean Similarity)라고도 하여, 같은 의미로도 인식 될 수 있다. 유클리디안 거리는 우리가 학창 시절(필자는 중학생 시절) 배웠던 피타고라스 정리와 같은 개념이라 생각하면 된다. 피타고라스의 정리는 이미 만들어진 삼각형을 이용한 공식이라 한다면, 유클리디안 거리는 삼각형을 만들어서 계산을 한다는 개념이라 인식하면 된다. 다만 추가적으로 차이점은 유클리디안 거리는 여러차원의 거리를 계산할 수 있다. 그래서 여러차원일 때의 공식을 보면 마치 엄청난 ..