AI 101
K-์ต๊ทผ์ ์ด์(KNN)์ด๋ ๋ฌด์์ธ๊ฐ?

K-최근접 이웃(KNN)이란 무엇인가?
K-최근접 이웃은 기계 학습 기법 및 알고리즘으로, 회귀 및 분류 작업 모두에 사용될 수 있습니다. K-최근접 이웃은 목표 데이터 포인트를 둘러싼 선택된 수의 데이터 포인트의 레이블을 조사하여 데이터 포인트가 속하는 클래스에 대한 예측을 만듭니다. K-최근접 이웃(KNN)은 개념적으로 간단하지만 매우 강력한 알고리즘으로, 이러한 이유로 가장 인기 있는 기계 학습 알고리즘 중 하나입니다. KNN 알고리즘이 작동하는 방식을 자세히 살펴보겠습니다. KNN이 작동하는 방식을 잘 이해하면, KNN의 최선과 최악의 사용 사례를 감상할 수 있습니다.
K-최근접 이웃(KNN) 개요

사진: Antti Ajanki AnAj via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:KnnClassification.svg)
2D 평면上的 데이터셋을 시각화해 보겠습니다. 그래프에 퍼져 있는 데이터 포인트의 집합을 상상해 보세요. KNN은 데이터 포인트의 분포를 조사하고, 모델에 제공된 인수에 따라 데이터 포인트를 그룹으로 나눕니다. 이러한 그룹에는 레이블이 할당됩니다. KNN 모델이 하는 주요 가정은 서로 가까운 데이터 포인트/인스턴스가 매우 유사하고, 데이터 포인트가 다른 그룹에서 멀리 떨어져 있으면 그 데이터 포인트와 유사하지 않다는 것입니다.
KNN 모델은 그래프上的 두 점 사이의 거리를 사용하여 유사성을 계산합니다. 점 사이의 거리가 클수록 유사성이 낮습니다. 거리를 계산하는 방법은 여러 가지 있지만, 가장 일반적인 거리 측정은 유클리드 거리(직선上的 두 점 사이의 거리)입니다.
KNN은 지도 학습 알고리즘이므로, 데이터셋의 예제에는 레이블이 할당되어야 합니다. KNN에 대해 알아야 할 두 가지 중요한 사항이 있습니다. 첫째, KNN은 비모수적 알고리즘입니다. 즉, 모델을 사용할 때 데이터셋에 대한 가정은 하지 않습니다. 모델은 제공된 데이터에서만 구성됩니다. 둘째, KNN을 사용할 때는 데이터셋을 훈련 세트와 테스트 세트로 나누지 않습니다. KNN은 훈련 세트와 테스트 세트 사이에서 일반화를 하지 않으므로, 모든 훈련 데이터를 사용하여 예측을 만듭니다.
KNN 알고리즘이 작동하는 방식
KNN 알고리즘은 수행되면서 세 가지 주요 단계를 거칩니다:
- 선택한 이웃의 수(K)를 설정합니다.
- 제공된/테스트 예제와 데이터셋 예제 사이의 거리를 계산합니다.
- 계산된 거리를 정렬합니다.
- 상위 K 항목의 레이블을 가져옵니다.
- 테스트 예제에 대한 예측을 반환합니다.
첫 번째 단계에서, 사용자는 K를 선택하고, 알고리즘에 얼마나 많은 이웃(테스트 예제를 분류하기 위해 고려해야 하는 얼마나 많은 데이터 포인트)을 고려해야 하는지 알려줍니다. 두 번째 단계에서, 모델은 테스트 예제와 데이터셋의 모든 예제 사이의 거리를 확인합니다. 거리는 목록에 추가되고 정렬됩니다. 이후, 정렬된 목록을 확인하고 상위 K 요소의 레이블을 반환합니다. 즉, K를 5로 설정하면, 모델은 테스트 데이터 포인트에서 가장 가까운 5개의 데이터 포인트의 레이블을 확인합니다. 테스트 데이터 포인트에 대한 예측을 렌더링할 때, 작업이 회귀인지 분류인지에 따라 다릅니다. 회귀 작업의 경우, 상위 K 레이블의 평균을 사용하고, 분류 작업의 경우, 상위 K 레이블의 모드를 사용합니다.
선택한 거리 측정에 따라 KNN을 수행하는 정확한 수학적 연산은 다릅니다. 거리 측정의 계산 방법에 대해 자세히 알아보려면, 유클리드, 맨하탄, 민코프스키와 같은 가장 일반적인 거리 측정에 대해 읽어볼 수 있습니다.
K의 값이 중요한 이유
KNN을 사용할 때의 주요 제한은 K의 부적절한 값(잘못된 이웃 수)이 선택될 수 있다는 것입니다. 이렇게 되면, 반환된 예측이 상당히 부정확할 수 있습니다. KNN 알고리즘을 사용할 때, 적절한 K 값을 선택하는 것이 매우 중요합니다. 모델의 예측 능력을 최대화하면서 오류를 최소화하는 K 값을 선택하고 싶습니다.

사진: Agor153 via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:Map1NN.png)
K의 값이 낮으면, KNN의 예측이 덜 안정적이고 신뢰할 수 없습니다. 이를 이해하기 위해, 7개의 이웃이 테스트 데이터 포인트 주변에 있는 경우를 고려해 보겠습니다. KNN 모델이 작동하는 K 값을 2(테스트 예제를 분류하기 위해 두 개의 가장 가까운 이웃을 고려함)로 설정했다고 가정해 보겠습니다. 대부분의 이웃(7개 중 5개)이 블루 클래스에 속하지만, 두 개의 가장 가까운 이웃이 빨간색인 경우, 모델은 테스트 예제가 빨간색이라고 예측합니다. 모델의 추측에도 불구하고, 이러한 시나리오에서는 블루가 더 나은 추측일 것입니다.
이 경우, 왜 가장 높은 K 값을 선택하지 않을까요? 이것은 모델이 너무 많은 이웃을 고려하면 정확도가 낮아지기 때문입니다. KNN 모델이 고려하는 반경이 증가하면, 다른 그룹에 더 가까운 데이터 포인트를 고려하기 시작하여 분류 오류가 발생합니다. 예를 들어, 초기에 선택한 포인트가 빨간색 영역에 있는 경우, K를 너무 높게 설정하면, 모델은 다른 영역으로 확장하여 포인트를 고려합니다. KNN 모델을 사용할 때, 다양한 K 값을 시도하여 모델의 성능이 가장 좋은 값을 찾습니다.
KNN의 장단점
KNN 모델의 일부 장단점을 살펴보겠습니다.
장점:
KNN은 회귀 및 분류 작업 모두에 사용될 수 있습니다.
KNN은 매우 정확하고 사용하기 쉽습니다. 해석하기 쉽고, 이해하기 쉽고, 구현하기 쉽습니다.
KNN은 데이터에 대한 가정은 하지 않으므로, 다양한 문제에 사용될 수 있습니다.
단점:
KNN은 대부분의 데이터 또는 모든 데이터를 저장하므로, 모델은 많은 메모리가 필요하고, 계산 비용이 많이 듭니다. 큰 데이터셋은 예측에 오랜 시간이 걸릴 수 있습니다.
KNN은 데이터셋의 크기에 매우 민감하며, 다른 모델에 비해 관련이 없는 기능으로 인해 쉽게 방해받을 수 있습니다.
K-최근접 이웃(KNN) 요약
K-최근접 이웃은 가장 간단한 기계 학습 알고리즘 중 하나입니다. KNN이 개념적으로 간단한 알고리즘에도 불구하고, 매우 강력한 알고리즘으로, 대부분의 문제에서相当 높은 정확도를 제공합니다. KNN을 사용할 때, 다양한 K 값을 실험하여 가장 높은 정확도를 제공하는 값을 찾는 것이 중요합니다.












