KNN(K-Nearest Neighbors): 정의 및 기계 학습에서 사용되는 방법

게시 됨: 2024-12-18

KNN(K-최근접 이웃)은 기계 학습(ML)의 기본 기술입니다. 이 가이드는 KNN, 작동 방식, 애플리케이션, 이점 및 과제를 이해하는 데 도움이 됩니다.

목차

k-최근접 이웃 알고리즘이란 무엇입니까?

KNN은 어떻게 작동하나요?

k-최근접 이웃과 다른 알고리즘의 차이점

KNN은 머신러닝에서 어떻게 사용되나요?

KNN의 응용

KNN의 장점

KNN의 단점

k-최근접 이웃 알고리즘이란 무엇입니까?

KNN(k-nearest neighbor) 알고리즘은 분류와 회귀 모두에 사용되는 지도 학습 기술입니다. KNN은 데이터 세트의 인근 데이터 포인트를 평가하여 특정 데이터 포인트의 레이블(분류) 또는 예측 값(회귀)을 결정합니다.

Grammarly로 더욱 스마트하게 작업하세요
할 일이 있는 모든 사람을 위한 AI 글쓰기 파트너

KNN은 어떻게 작동하나요?

KNN은 데이터 세트에서 공간적으로 서로 가까운 데이터 포인트가 유사한 값을 갖거나 유사한 카테고리에 속하는 경향이 있다는 전제를 기반으로 합니다. KNN은 이 간단하지만 강력한 아이디어를 사용하여 레이블이 지정된 훈련 데이터 세트 내에서 인접한 데이터 포인트의 미리 설정된 수(초매개변수 k)를 찾아 새 데이터 포인트를 분류합니다. 이 값 k는 ML 실무자가 알고리즘 학습 방법을 제어하는 ​​데 사용하는 사전 설정된 구성 변수인 KNN 하이퍼파라미터 중 하나입니다.

그런 다음 알고리즘은 이웃 값 중 새 데이터 포인트에 가장 가까운 값을 결정하고 해당 값에 이웃 값과 동일한 레이블 또는 카테고리를 할당합니다. 선택된 k 값은 모델 성능에 영향을 미칩니다. 값이 작을수록 잡음 민감도가 증가하고, 값이 클수록 견고성은 증가하지만 KNN이 로컬 패턴을 놓칠 수 있습니다.

데이터 포인트 사이의 근접성 또는 거리는 원래 수학적 공간에서 포인트의 유사성을 측정하기 위해 개발된 측정항목을 사용하여 계산됩니다. 일반적인 측정항목으로는 유클리드 거리, 맨해튼 거리, 민코프스키 거리 등이 있습니다. KNN 성능은 선택한 지표의 영향을 받으며, 다양한 지표는 다양한 유형과 크기의 데이터에서 더 나은 성능을 발휘합니다.

예를 들어, 각 데이터 포인트를 설명하는 개별 속성인 데이터의 차원 수는 메트릭 성능에 영향을 미칠 수 있습니다. 선택한 거리 측정법에 관계없이 목표는 다른 데이터 포인트와의 거리를 기준으로 새 데이터 포인트를 분류하거나 예측하는 것입니다.

  • 유클리드 거리는공간의 두 점 사이의 직선 거리이며 가장 일반적으로 사용되는 측정법입니다. 차원 수가 적고 중요한 이상값이 없는 데이터에 가장 적합합니다.
  • 맨해튼 거리는측정되는 데이터 포인트 좌표 간의 절대 차이의 합입니다. 이 메트릭은 데이터가 고차원이거나 데이터 포인트가 그리드와 같은 구조를 형성할 때 유용합니다.
  • 민코프스키 거리는조정 가능한 매개변수 값에 따라 유클리드 거리 또는 맨해튼 거리처럼 작동할 수 있는 조정 가능한 측정항목입니다. 이 매개변수를 조정하면 거리 계산 방법이 제어되며, 이는 KNN을 다양한 유형의 데이터에 적용하는 데 유용합니다.

기타 덜 일반적인 측정항목으로는 Chebyshev, Hamming 및 Mahalanobis 거리가 있습니다. 이러한 측정항목은 더욱 전문적이며 특정 데이터 유형 및 분포에 적합합니다. 예를 들어, 마할라노비스 거리는 변수 간의 관계를 고려하여 점 분포에서 점까지의 거리를 측정합니다. 따라서 Mahalanobis 거리는 기능이 다른 척도를 사용하는 데이터 작업에 매우 적합합니다.

KNN은 다른 많은 알고리즘과 달리 훈련이 필요하지 않기 때문에 종종 "게으른" 학습 알고리즘이라고 불립니다. 대신 KNN은 데이터를 저장하고 새로운 데이터 포인트에 회귀 또는 분류가 필요한 경우에만 이를 사용하여 결정을 내립니다. 그러나 이는 각 예측에 대해 전체 데이터 세트가 평가되므로 예측에 높은 계산 요구 사항이 있는 경우가 많다는 것을 의미합니다. ∫

k-최근접 이웃과 다른 알고리즘의 차이점

KNN은 의사결정 트리/랜덤 포레스트, 로지스틱 회귀 및 지원 벡터 머신(SVM)을 포함하는 분류 및 회귀에 맞춰진 감독형 ML 기술의 대규모 제품군에 속합니다. 그러나 KNN은 단순성과 데이터 처리에 대한 직접적인 접근 방식 등 여러 요인으로 인해 이러한 기술과 다릅니다.

의사결정 트리와 랜덤 포레스트

KNN과 마찬가지로 의사결정 트리와 랜덤 포레스트가 분류 및 회귀에 사용됩니다. 그러나 이러한 알고리즘은 KNN의 거리 기반 접근 방식과 달리 훈련 중에 데이터에서 학습된 명시적인 규칙을 사용합니다. 의사결정 트리와 랜덤 포레스트는 사전 훈련된 규칙을 갖고 있기 때문에 예측 속도가 더 빠른 경향이 있습니다. 이는 실시간 예측 작업과 대규모 데이터 세트 처리에 KNN보다 더 적합하다는 것을 의미합니다.

로지스틱 회귀

로지스틱 회귀는 데이터가 선형으로 분포되어 있다고 가정하고 직선 또는 초평면(고차원 공간에서 데이터 포인트를 구분하는 경계)을 사용하여 데이터를 분류하여 카테고리로 구분합니다. 반면 KNN은 특정 데이터 분포를 가정하지 않습니다. 따라서 KNN은 복잡하거나 비선형 데이터에 더 쉽게 적응할 수 있는 반면, 로지스틱 회귀는 선형 데이터에 가장 잘 사용됩니다.

지원 벡터 머신

SVM(서포트 벡터 머신)은 KNN과 같은 점 사이의 거리를 보는 대신 데이터 점 그룹 사이에 명확한 구분선을 만드는 데 중점을 두고 있으며, 종종 데이터 점 사이의 간격을 최대한 넓게 만드는 것을 목표로 합니다. SVM은 많은 기능이 포함된 복잡한 데이터 세트를 처리하거나 데이터 포인트 그룹 간의 명확한 구분이 필요한 경우에 유용합니다. 이에 비해 KNN은 사용하고 이해하기가 더 간단하지만 대규모 데이터세트에서는 제대로 작동하지 않습니다.

KNN은 머신러닝에서 어떻게 사용되나요?

많은 ML 알고리즘은 한 가지 유형의 작업만 처리할 수 있습니다. KNN은 분류와 회귀라는 하나가 아닌 두 가지 일반적인 사용 사례를 처리하는 능력이 뛰어납니다.

분류

KNN은 거리 측정법을 사용하여 k-최근접 이웃을 결정하고 이웃 라벨을 기반으로 새 데이터 포인트에 라벨을 할당함으로써 데이터 포인트를 분류합니다. 일반적인 KNN 분류 사용 사례에는 이메일 스팸 분류, 구매 내역을 기반으로 고객을 카테고리로 그룹화, 필기 번호 인식 등이 포함됩니다.

회귀

KNN은 k-최근접 이웃의 평균(또는 가중 평균)을 기반으로 데이터 포인트의 값을 추정하여 회귀를 수행합니다. 예를 들어, KNN은 인근 지역의 유사한 부동산을 기반으로 주택 가격, 유사한 주식에 대한 과거 데이터를 기반으로 한 주가, 유사한 위치의 과거 날씨 데이터를 기반으로 기온을 예측할 수 있습니다.

ML에서 KNN 알고리즘 적용

상대적인 단순성과 분류 및 회귀를 모두 수행할 수 있는 능력으로 인해 KNN은 광범위한 응용 분야를 가지고 있습니다. 여기에는 이미지 인식, 추천 시스템 및 텍스트 분류가 포함됩니다.

이미지 인식

이미지 인식은 분류 기능으로 인해 KNN의 가장 일반적인 응용 프로그램 중 하나입니다. KNN은 색상, 모양 등 알 수 없는 이미지의 특징을 레이블이 지정된 이미지 데이터세트의 특징과 비교하여 이미지 인식을 수행합니다. 이는 KNN을 컴퓨터 비전과 같은 분야에서 유용하게 만듭니다.

추천 시스템

KNN은 사용자의 선호도 데이터를 유사한 사용자의 데이터와 비교하여 사용자에게 제품이나 콘텐츠를 추천할 수 있습니다. 예를 들어, 사용자가 여러 클래식 재즈 노래를 들었다면 KNN은 비슷한 선호도를 가진 사용자를 찾아 해당 사용자가 즐겼던 노래를 추천할 수 있습니다. 따라서 KNN은 유사한 데이터를 기반으로 제품이나 콘텐츠를 추천함으로써 사용자 경험을 개인화하는 데 도움을 줄 수 있습니다.

텍스트 분류

텍스트 분류는 미리 분류된 텍스트와의 유사성을 기준으로 분류되지 않은 텍스트를 분류하려고 합니다. 단어 패턴의 근접성을 평가하는 KNN의 능력은 KNN을 이 사용 사례에 효과적인 도구로 만듭니다. 텍스트 분류는 텍스트를 긍정적, 부정적, 중립적으로 분류하거나 뉴스 기사의 카테고리를 결정하는 감정 분석과 같은 작업에 특히 유용합니다.

ML에서 KNN 알고리즘의 장점

KNN은 단순성, 다양성, 교육 단계 부족 등 몇 가지 주목할만한 이점을 가지고 있습니다.

간단

다른 많은 ML 알고리즘에 비해 KNN은 이해하고 사용하기 쉽습니다. KNN의 논리는 직관적입니다. 인근 데이터 포인트의 값을 기반으로 새로운 데이터 포인트를 분류하거나 예측(회귀)하므로 ML 실무자, 특히 초보자에게 널리 사용됩니다. 또한 KNN을 사용하려면 k 값을 선택하는 것 외에 최소한의 하이퍼파라미터 튜닝이 필요합니다.

다재

KNN은 분류 및 회귀 작업 모두에 사용할 수 있습니다. 즉, 이미지 인식부터 수치 예측까지 광범위한 문제와 데이터 유형에 적용할 수 있습니다. 한 가지 유형의 작업으로 제한된 특수 알고리즘과 달리 KNN은 적절하게 구조화된 레이블이 지정된 모든 데이터 세트에 적용될 수 있습니다.

명시적 훈련 단계

많은 ML 모델이 유용해지려면 시간과 리소스 집약적인 학습 단계가 필요합니다. 반면 KNN은 단순히 훈련 데이터를 저장하고 예측 시 직접 사용합니다. 따라서 KNN은 새로운 데이터로 업데이트될 수 있으며 예측에 즉시 사용할 수 있습니다. 이로 인해 KNN은 소규모 데이터 세트에 특히 매력적입니다.

ML에서 KNN 알고리즘의 단점

KNN은 이러한 장점에도 불구하고 몇 가지 과제를 안고 있습니다. 여기에는 높은 계산 및 메모리 비용, 노이즈 및 관련 없는 기능에 대한 민감성, "차원성의 저주"가 포함됩니다.

예측의 계산 비용

KNN은 예측을 할 때마다 새로운 데이터 포인트와 전체 교육 데이터세트의 모든 데이터 포인트 사이의 거리를 계산하므로 데이터세트가 커짐에 따라 예측 계산 비용도 빠르게 증가합니다. 이로 인해 데이터세트가 크거나 KNN이 부족한 하드웨어에서 실행되는 경우 예측이 느려질 수 있습니다.

차원의 저주

KNN은 고차원 데이터 처리 능력을 제한하는 소위 "차원성의 저주"를 겪고 있습니다. 데이터 세트의 기능 수가 증가하면 대부분의 데이터 포인트가 희박해지고 서로 거의 등거리가 됩니다. 따라서 거리 측정법은 덜 유용해지며, 이로 인해 KNN이 실제로 근처에 있는 고차원 데이터세트에서 이웃을 찾는 것이 어려워집니다.

메모리 집약적

KNN의 독특한 특징은 예측 시 사용하기 위해 전체 교육 데이터 세트를 메모리에 저장한다는 것입니다. 제한된 메모리나 대규모 데이터세트를 처리할 때 이는 문제가 되고 비실용적일 수 있습니다. 다른 ML 알고리즘은 모델 훈련 및 매개변수 최적화를 통해 훈련 데이터를 학습된 기능으로 압축하고 정제하여 이러한 문제를 방지합니다. 반면 KNN은 모든 데이터 포인트를 유지해야 합니다. 즉, 훈련 데이터 세트 크기에 따라 메모리가 선형적으로 증가합니다.

소음 및 관련 없는 기능에 대한 민감도

KNN의 힘은 간단하고 직관적인 거리 계산에 있습니다. 그러나 이는 중요하지 않은 특징이나 노이즈로 인해 잘못된 거리 계산이 발생하여 예측 정확도에 부정적인 영향을 미칠 수 있음을 의미하기도 합니다. 따라서 주성분 분석(PCA)과 같은 특징 선택 또는 차원 축소 기술은 중요한 특징이 예측에 가장 큰 영향을 미치는지 확인하기 위해 KNN과 함께 사용되는 경우가 많습니다.