부본 KNN(K-Nearest Neighbors)이란 무엇입니까? - Unite.AI
Rescale 미팅 예약

AI 101

KNN(K-Nearest Neighbors)이란 무엇입니까?

mm
업데이트 on

KNN(K-Nearest Neighbors)이란 무엇입니까?

K-Nearest Neighbors는 기계 학습 기술 및 알고리즘입니다. 회귀 및 분류 작업 모두에 사용할 수 있습니다.. K- 최근 접 이웃 검사하다 선택한 데이터 포인트 수의 레이블 데이터 포인트가 속하는 클래스에 대한 예측을 하기 위해 대상 데이터 포인트를 둘러쌉니다. KNN(K-Nearest Neighbors)은 개념적으로 단순하지만 매우 강력한 알고리즘이며 이러한 이유로 가장 널리 사용되는 기계 학습 알고리즘 중 하나입니다. KNN 알고리즘에 대해 자세히 알아보고 정확히 어떻게 작동하는지 살펴보겠습니다. KNN의 작동 방식을 잘 이해하면 KNN의 최상의 사용 사례와 최악의 사용 사례를 이해할 수 있습니다.

KNN(K-Nearest Neighbors) 개요

사진: Wikimedia Commons를 통한 Antti Ajanki AnAj, CC BY SA 3.0(https://commons.wikimedia.org/wiki/File:KnnClassification.svg)

2D 평면에서 데이터 세트를 시각화해 보겠습니다. 작은 클러스터의 그래프를 따라 분산된 그래프의 데이터 포인트 묶음을 그려보세요. KNN은 데이터 포인트의 분포를 검사하고 모델에 제공된 인수에 따라 데이터 포인트를 그룹으로 분리합니다. 그런 다음 이러한 그룹에 레이블이 지정됩니다. KNN 모델이 만드는 기본 가정은 서로 근접한 데이터 포인트/인스턴스가 매우 유사하지만 데이터 포인트가 다른 그룹에서 멀리 떨어져 있으면 해당 데이터 포인트와 유사하지 않다는 것입니다.

KNN 모델은 그래프에서 두 점 사이의 거리를 사용하여 유사성을 계산합니다. 점 사이의 거리가 멀수록 덜 유사합니다. 점 사이의 거리를 계산하는 방법에는 여러 가지가 있지만 가장 일반적인 거리 메트릭은 유클리드 거리(직선의 두 점 사이의 거리)입니다.

KNN은 지도 학습 알고리즘입니다. 즉, 데이터 세트의 예제에는 할당된 레이블이 있어야 하며 해당 클래스를 알아야 합니다. KNN에 대해 알아야 할 두 가지 다른 중요한 사항이 있습니다. 첫째, KNN은 비모수 알고리즘입니다. 즉, 모델을 사용할 때 데이터 세트에 대한 가정이 이루어지지 않습니다. 오히려 모델은 전적으로 제공된 데이터로 구성됩니다. 둘째, KNN을 사용할 때 데이터 세트를 교육 및 테스트 세트로 분할하지 않습니다. KNN은 훈련 세트와 테스트 세트 사이에 일반화를 하지 않으므로 모델이 예측을 요청하는 경우에도 모든 훈련 데이터가 사용됩니다.

KNN 알고리즘의 작동 방식

KNN 알고리즘은 수행되는 세 가지 주요 단계를 거칩니다.

  1. K를 선택한 이웃 수로 설정합니다.
  2. 제공된/테스트 예제와 데이터 세트 예제 사이의 거리를 계산합니다.
  3. 계산된 거리를 정렬합니다.
  4. 상위 K 항목의 레이블을 가져옵니다.
  5. 테스트 예시에 대한 예측을 반환합니다.

첫 번째 단계에서 K는 사용자가 선택하고 대상 예제가 속한 그룹에 대한 판단을 렌더링할 때 얼마나 많은 이웃(주변 데이터 포인트 수)을 고려해야 하는지 알고리즘에 알려줍니다. 두 번째 단계에서 모델은 대상 예제와 데이터 세트의 모든 예제 사이의 거리를 확인합니다. 그런 다음 거리가 목록에 추가되고 정렬됩니다. 그런 다음 정렬된 목록을 확인하고 상위 K개 요소에 대한 레이블을 반환합니다. 즉, K가 5로 설정되면 모델은 대상 데이터 포인트에 가장 가까운 상위 5개 데이터 포인트의 레이블을 확인합니다. 대상 데이터 포인트에 대한 예측을 렌더링할 때 작업이 되돌아옴 or 분류 일. 회귀 작업의 경우 상위 K 레이블의 평균이 사용되는 반면 분류의 경우 상위 K 레이블의 모드가 사용됩니다.

KNN을 수행하는 데 사용되는 정확한 수학적 연산은 선택한 거리 메트릭에 따라 다릅니다. 메트릭이 계산되는 방법에 대해 자세히 알아보려면 다음과 같은 가장 일반적인 거리 메트릭에 대해 읽을 수 있습니다. 유클리드, 맨해튼민코프스키.

K의 가치가 중요한 이유

KNN을 사용할 때의 주요 제한 사항은 부적절한 K 값(고려할 잘못된 이웃 수)이 선택될 수 있다는 것입니다. 이런 일이 발생하면 반환되는 예측이 크게 어긋날 수 있습니다. KNN 알고리즘을 사용할 때 적절한 K 값을 선택하는 것이 매우 중요합니다. 오류 수를 줄이면서 보이지 않는 데이터에 대한 예측을 수행하는 모델의 기능을 최대화하는 K 값을 선택하려고 합니다.

사진: Wikimedia Commons를 통한 Agor153, CC BY SA 3.0(https://en.wikipedia.org/wiki/File:Map1NN.png)

K 값이 낮을수록 KNN이 렌더링하는 예측이 덜 안정적이고 신뢰할 수 있음을 의미합니다. 그 이유를 직감하기 위해 대상 데이터 포인트 주변에 7개의 이웃이 있는 경우를 고려하십시오. KNN 모델이 K 값 2로 작동한다고 가정해 보겠습니다(예측을 위해 두 개의 가장 가까운 이웃을 살펴보라고 요청함). 대부분의 이웃(XNUMX개 중 XNUMX개)이 Blue 클래스에 속하지만 가장 가까운 두 이웃이 우연히 Red인 경우 모델은 쿼리 예제가 Red라고 예측합니다. 모델의 추측에도 불구하고 이러한 시나리오에서는 파란색이 더 나은 추측입니다.

그렇다면 우리가 할 수 있는 가장 높은 K 값을 선택하지 않는 이유는 무엇입니까? 너무 많은 이웃을 고려하도록 모델에 지시하면 정확도도 떨어지기 때문입니다. KNN 모델이 고려하는 반경이 증가함에 따라 결국 대상 데이터 포인트보다 다른 그룹에 더 가까운 데이터 포인트를 고려하기 시작하고 오분류가 발생하기 시작합니다. 예를 들어 처음에 선택한 점이 위의 빨간색 영역 중 하나에 있더라도 K가 너무 높게 설정되면 모델이 다른 영역에 도달하여 점을 고려합니다. KNN 모델을 사용할 때 어떤 값이 모델에 최상의 성능을 제공하는지 확인하기 위해 다양한 K 값을 시도합니다.

KNN 장단점

KNN 모델의 장단점을 살펴보겠습니다.

장점 :

KNN은 다른 감독 학습 알고리즘과 달리 회귀 및 분류 작업 모두에 사용할 수 있습니다.

KNN은 매우 정확하고 사용하기 쉽습니다. 해석, 이해 및 구현이 쉽습니다.

KNN은 데이터에 대해 어떤 가정도 하지 않으므로 다양한 문제에 사용할 수 있습니다.

단점 :

KNN은 대부분 또는 모든 데이터를 저장합니다. 즉, 모델에 많은 메모리가 필요하고 계산 비용이 많이 듭니다. 데이터 세트가 크면 예측에 시간이 오래 걸릴 수도 있습니다.

KNN은 데이터 세트의 규모에 매우 민감한 것으로 입증되었으며 다른 모델과 비교할 때 상당히 쉽게 관련 없는 기능으로 인해 폐기될 수 있습니다.

KNN(K-Nearest Neighbors) 요약

K-Nearest Neighbors는 가장 간단한 기계 학습 알고리즘 중 하나입니다. KNN이 얼마나 간단한지에도 불구하고 개념적으로는 대부분의 문제에서 상당히 높은 정확도를 제공하는 강력한 알고리즘이기도 합니다. KNN을 사용할 때 가장 높은 정확도를 제공하는 숫자를 찾기 위해 다양한 K 값으로 실험해야 합니다.

전문 분야의 블로거 및 프로그래머 기계 학습 깊은 학습 주제. 다니엘은 다른 사람들이 사회적 이익을 위해 AI의 힘을 사용하도록 돕기를 희망합니다.