머신 러닝 및 인공 지능에서 데이터 분류는 기본적인 과정입니다. 이 과정의 목표는 기능에 따라 데이터 포인트에 레이블을 지정하는 것입니다. 여기에는 알려진 데이터(학습 데이터)를 분석하는 과정이 포함되며, 이때 각 예제에는 범주 또는 값으로 라벨이 지정되어 있습니다. 라벨은 데이터 내의 패턴과 관계를 설정하는 데 도움이 되며, 이를 통해 모델은 본 적 없는 새로운 데이터 포인트를 정확하게 예측할 수 있습니다. 하지만 라벨이 지정된 데이터를 사용하는 방식에는 문제가 있습니다. 데이터에 수작업으로 라벨을 지정해야 하기 때문에 시간이 많이 걸리고 어려운 데다 자원도 투입해야 하므로 일부 조직에서는 이 옵션을 선택할 수 없습니다.
KNN(K-최근접 이웃) 알고리즘이 이 문제에 대한 간단하고 효율적인 해결책을 제시합니다. KNN은 사전에 복잡한 계산을 수행할 필요가 없고, 모든 데이터를 저장해 두었다가 기존 데이터와의 유사도에 따라 새로운 데이터를 예측합니다. 이와 같은 접근 방식을 통해 KNN은 대규모 미세 조정 없이도 정확한 예측을 수행할 수 있으며, 이는 특히 데이터 집합이 작고 컴퓨팅 파워가 제한적일 때 유용한 접근 방식입니다.
벡터는 K-최근접 이웃 알고리즘의 기능에 필수적인 요소입니다. 벡터는 다차원 공간의 점을 나타내는 일련의 숫자입니다. 머신 러닝 모델은 비정형 원시 데이터를 이러한 수치 표현, 즉 임베딩으로 변환할 수 있어야 합니다. 임베딩은 입력 데이터의 의미적 또는 구조적 본질을 포착하며, 임베딩 간의 관계는 벡터 공간에서 서로의 공간적 근접성, 즉 서로 얼마나 가깝거나 멀리 떨어져 있는지로 표현됩니다.
KNN은 쿼리 지점의 "이웃" 즉, 다차원 공간 내의 근접한 다른 임베딩을 식별하는 방식으로 이 공간적 배열을 사용합니다. 이러한 이웃은 공유된 특성 또는 유사한 특징을 가진 데이터 포인트를 반영합니다.
예를 들어, 주제가 유사한 두 문서에는 더 밀접한 내용이 포함되므로 KNN이 유사성과 연관성을 인식할 수 있으며, 이러한 관계를 기반으로 새로운 데이터를 분류하거나 결과를 예측할 수 있습니다.
k-최근접 이웃 알고리즘은 벡터를 사용하여 새로운 데이터 포인트에 대한 "k"(최근접 데이터 포인트 또는 이웃)를 식별하고 이러한 이웃을 기반으로 예측을 수행합니다. 예를 들어, 이메일을 스팸 또는 스팸이 아닌 것으로 분류하는 것이 목표라면, KNN은 "k"와 가장 유사한 이메일을 살펴보고, 이러한 이웃의 과반수 분류에 따라 새 이메일을 분류합니다.
또는 다양한 고객에 대한 데이터를 가지고 있는 한 조직을 생각해 보겠습니다. 이러한 데이터에는 연령, 관심사, 구매 내역 등과 같은 특징이 포함되어 있습니다. KNN은 이러한 고객들의 특징을 비교하여 단골 고객, 비정기적 구매자, 구경꾼 등의 범주로 그룹화할 수 있습니다. 새로운 고객이 웹사이트를 방문하면, KNN은 어떤 그룹과 가장 유사한지 평가하여 그들의 쇼핑 행동을 예측할 수 있습니다.
멀티모달 데이터 세트와 함께 사용하면 알고리즘의 적응성은 더욱 확장됩니다. 여기에서는 텍스트, 이미지, 오디오 등과 같은 여러 소스의 정보가 동시에 결합됩니다. KNN은 공유된 벡터 공간에서 이러한 임베딩을 분석하여 서로 다른 모달리티 사이의 유사성을 식별할 수 있습니다. KNN을 멀티모달 데이터에 적용하면 데이터 유형에 관계없이 가장 유사한 이웃을 찾을 수 있습니다. 이러한 특징 덕분에 KNN은 점점 복잡하고 다양해지고 있는 데이터 시나리오를 처리하기 위한 실용적인 알고리즘으로 활용되고 있습니다.
- 패턴 인식
KNN은 이미지 및 필기 인식과 같은 패턴 인식 작업에 널리 사용됩니다. KNN은 새로운 이미지 또는 샘플을 라벨이 지정된 데이터 세트와 비교하여 알려진 패턴과의 유사성을 기반으로 물체, 문자 또는 얼굴을 정확하게 분류할 수 있습니다.
- 데이터 처리
KNN은 누락된 값의 대체나 이상치 감지 등 데이터 전처리에 효과적입니다. KNN은 가장 가까운 이웃을 분석해서 가장 유사한 데이터 포인트를 기반으로 누락된 값을 추정하여 데이터의 품질과 일관성을 향상시킬 수 있습니다.
- 추천 엔진
KNN은 사용자 행동과 기본 설정을 분석하여 추천 시스템을 빌드하는 데 도움이 됩니다. KNN은 비슷한 관심사를 가진 사용자를 찾아서 유사한 프로필을 가진 다른 사람들이 좋아했던 제품, 영화 또는 콘텐츠를 제안하는 방식으로 사용자 경험과 참여를 개선할 수 있습니다.
- 이미지-텍스트 변환
KNN은 멀티모달 시스템의 이미지-텍스트 변환 작업에 점점 더 널리 사용되고 있습니다. KNN을 사용해 이미지 임베딩을 텍스트 설명의 임베딩과 비교하면 AI 시스템이 자동 캡션과 같은 복잡한 작업을 수행할 수 있습니다. 이때 최근접 일치 항목은 제시된 이미지와 문맥적으로 적절한 텍스트를 제공합니다.
위에 나열된 각 접근 방식에서는 KNN 예측의 정확성이 데이터의 유사성을 측정하는 데 사용되는 거리 메트릭에 크게 의존합니다. KNN의 거리 메트릭은 정확한 예측을 위해 중요 데이터 포인트 간의 유사성을 측정합니다. 이러한 메트릭은 알고리즘이 새로운 데이터 포인트를 효과적으로 분류 또는 예측할 수 있도록 데이터 포인트의 "근접성"을 계산하는 방법을 결정합니다.
유클리드 거리는 KNN에서 가장 일반적으로 사용되는 메트릭으로, 유클리드 공간에서 두 지점 사이의 직선 거리를 계산합니다. 지도와 눈금자를 사용하여 두 위치 사이의 최단 경로를 측정한다고 생각해 보세요. 거리가 짧을수록 두 지점은 더 유사한 것으로 간주됩니다. 예를 들어, 서로 다른 개체의 신장과 체중을 비교한다면 유클리드 거리는 이 두 가지 특징을 기준으로 최단 유클리드 거리를 구분하여 가장 유사한 개체를 판단할 수 있습니다.
맨해튼 거리는 도시의 격자형 거리를 탐색하는 것과 같이 각 차원의 지점 사이에서 절대적인 차이를 측정합니다. 건물을 대각선으로 통과해 이동하는 것이 아니라 길을 따라서만 움직일 수 있는 도시의 격자 구조를 상상해 보세요. 이 메트릭은 배달 경로 비교나 도시 계획 시나리오와 같이 데이터 포인트가 격자형 패턴으로 구조화되어 있을 때 유용합니다.
민코프스키 거리는 유클리드 거리와 맨해튼 거리를 일반화한 것입니다. 매개변수 "p"를 조정하면 각각의 메트릭처럼 동작할 수 있습니다. 민코프스키 거리를 데이터 분석의 특정 요구 사항에 따라 다양한 시나리오에 적용할 수 있는 유연한 도구로 생각해 보세요. 예를 들어, 차원(가격, 면적, 객실 수 등)이 다른 속성을 비교하는 경우, "p" 값을 조정하면 다른 차원보다 특정 차원을 강조하여 다양한 유형의 데이터를 비교할 수 있는 다목적 메트릭으로 활용할 수 있습니다.
k값을 올바르게 정의하지 않으면 KNN 알고리즘이 의도한 대로 작동하지 않습니다. "k"의 값을 너무 작게 선택하면 데이터의 노이즈에 대한 예측이 지나치게 민감해져서 분산이 높고 안정적이지 않은 예측이 발생할 수 있습니다. 한편, 지나치게 값이 크면 예측치를 다듬을 수는 있지만, 모델이 너무 일반화되어 특정 패턴을 놓치는 경우가 발생할 수도 있습니다.
최적의 "k"값을 찾기 위해 실무자들은 일반적으로 교차 검증을 사용합니다. 교차 검증이란 데이터 세트를 학습 세트와 검증 세트로 나누어 서로 다른 "k" 값을 여러 번 테스트하는 기법입니다. 이를 통해 알고리즘의 일반화 능력을 유지하면서 예측 오류를 최소화하는 "k"를 파악할 수 있습니다.
이 프로세스에는 몇 가지 시행착오가 수반될 수 있습니다. 적절한 "k"값을 찾기 위해서는 다양한 값을 테스트하여 모델이 학습한 데이터와 새로 접하는 데이터 모두에서 잘 작동하는지 확인하고 안정성과 특이성 사이에서 최적의 균형을 달성해야 합니다.
데이터 포인트 간의 연결, 유사성, 관계를 확립하는 것이 k-최근접 이웃 알고리즘의 전반적인 목적입니다. 다양한 조직에서 이 모델이 인기를 끌고 있는 이유는 이 모델이 가져다 주는 추가적인 장점 덕분입니다. KNN의 이점은 다음과 같습니다.
KNN은 머신 러닝 초보자도 쉽게 구현하고 이해할 수 있습니다. 복잡한 학습 단계가 필요 없는 대신, 학습 데이터 세트를 기억해서 이를 직접 예측에 사용합니다.
분류 또는 회귀 작업에 사용할 경우 KNN은 데이터 포인트를 그룹화하는 데 필요한 다양한 데이터 구조 및 관계를 처리할 수 있습니다. 이러한 유연성 덕분에 재무, 의료, 전자 상거래 등의 여러 영역에 적용할 수 있습니다.
KNN에는 주로 "k"값과 거리 메트릭인 몇 개의 하이퍼파라미터만 필요합니다. 따라서 광범위한 매개변수 최적화가 필요할 수 있는 다른 알고리즘에 비해 모델 튜닝과 관련된 복잡성이 감소합니다 그 결과, 전체 모델 개발 프로세스가 간소화되고 최소한의 조정으로도 탁월한 성능을 쉽게 달성할 수 있습니다.
KNN 알고리즘은 여러 가지 이점을 제공하지만 눈에 띄는 특정한 단점도 존재합니다. 이러한 한계점에는 다음이 포함될 수 있습니다.
고차원성은 특징(또는 차원)의 수가 증가함에 따라 동일한 수준의 성능을 유지하는 데 필요한 데이터가 기하급수적으로 증가하는 것을 의미합니다. 고차원 공간에서는 데이터 포인트 간의 거리가 의미가 없어져 KNN이 진정한 "최근접" 이웃을 식별하기가 어려워집니다. 이러한 문제로 인해 특징이 많은 데이터 세트에서는 알고리즘의 정확도와 효과가 크게 감소할 수 있습니다.
KNN은 특히 "k"의 값이 작을 때, 데이터 세트에 있는 노이즈와 이상값에 의해 부정적인 영향을 받을 수 있습니다. 이러한 민감성은 알고리즘이 노이즈와 이상값을 실제 패턴인 것처럼 포착하는 과적합으로 이어질 수 있습니다. 과적합은 본 적 없는 새로운 데이터의 일반화에 있어 모델의 예측 성능이 저하되는 결과를 초래합니다.
데이터 세트 크기에 따라 컴퓨팅 복잡성이 증가하므로 지나치게 큰 데이터 집합에서는 KNN의 효율성이 떨어집니다. 예측할 때마다 학습 세트의 모든 기존 지점과 새 데이터 지점 간의 거리를 계산해야 하므로 메모리 사용량이 많아지고 계산 시간도 길어집니다. 이와 같이 확장성이 부족하기 때문에 데이터가 대량인 시나리오에서는 KNN의 적용 가능성이 제한됩니다.
앞서 언급한 바와 같이 KNN 알고리즘은 데이터 세트에 있는 다른 데이터 포인트와의 근접성을 기준으로 데이터 포인트를 분류합니다. 이를 위해 알고리즘은 다음과 같은 특정 단계를 따라야 합니다.
1. 이웃의 수(k) 선택
분류 또는 회귀 시 고려할 "k"의 값을 정의합니다. 이 값은 알고리즘이 데이터 포인트 사이의 유사성을 평가하는 방식에 영향을 줍니다.
2. 거리 계산
학습 세트의 각 데이터 포인트에 대해 표준 거리 메트릭(유클리드, 맨해튼 또는 민코프스키 거리)을 사용하여 새 데이터 포인트와의 거리를 계산합니다. 이와 같은 거리 측정은 새 데이터 포인트에 가장 가까운 항목으로 간주해야 할 기준을 파악하는 데 도움이 됩니다.
3. 가장 가까운 이웃 식별
2단계에서 계산한 거리에 따라 가장 가까운 이웃을 결정합니다. 이러한 이웃은 선택한 거리 메트릭을 기준으로 봤을 때 새 데이터 포인트와 가장 가까운 데이터 포인트입니다.
4. 예측 수행
분류 작업의 경우, 새로운 데이터 포인트를 "k" 최근접 이웃 중 가장 일반적인 클래스에 할당합니다. 회귀 작업의 경우, "k" 최근접 이웃의 평균 또는 중앙값을 계산하고 이 값을 새로운 데이터 포인트의 예측값으로 사용합니다.
5. 모델 평가
교차 검증 기법을 사용하여 KNN 모델의 정확도와 성능을 평가합니다. 모델의 예측을 최적화하기 위해 필요에 따라 "k"값과 거리 메트릭을 조정합니다.
KNN(K-최근접 이웃) 알고리즘을 수행하는 방법에는 여러 가지가 있으며, 저마다 고유한 장점과 적절한 응용 분야가 있습니다. 다음 방법은 최근접 이웃을 찾는 과정을 최적화하여 KNN을 다양한 유형의 데이터 세트에 활용할 수 있는 효율적인 옵션으로 만드는 데 도움이 됩니다.
- 무차별 대입법
무차별 대입법은 데이터 세트의 다른 모든 포인트와 쿼리 포인트 사이의 거리를 계산합니다. 단순하지만 계산 비용이 많이 들기 때문에 소규모 데이터 세트에 가장 적합합니다
- K-차원 트리(k-d 트리)
k-d 트리는 공간을 초월평면(Hyperrectangle)으로 재귀적으로 분할하여 k 차원 공간에 있는 포인트를 정리합니다. 이렇게 하면 거리 계산이 줄고 KNN 검색으로 중간 수준의 고차원 데이터를 찾는 속도가 빨라집니다.
- 볼 트리
볼 트리는 최근접 이웃을 효율적으로 찾을 수 있도록 공간을 중첩된 초구(Hypersphere)로 분할하여 데이터 세트에서 관련 없는 부분을 제거합니다. 이 방법은 특히 고차원 데이터에 효과적이며, 관련 시나리오에서 k-d 트리를 능가하는 경우가 많습니다.
k-최근접 이웃 알고리즘은 AI 시스템의 데이터 포인트를 분류하고 관계를 정량화하는 데 매우 유용하게 사용될 수 있습니다. ServiceNow는 엔터프라이즈 IT 솔루션 분야의 리더로서 고급 AI와 KNN을 통합하여 디지털 혁신을 위한 강력한 도구를 제공합니다. 수상 경력에 빛나는 ServiceNow의 Now Platform®은 AI와 머신 러닝을 활용하여 비즈니스 기능 전반의 워크플로우를 자동화, 최적화, 현대화함으로써 전사적으로 지능형 최적화를 이룰 수 있도록 지원합니다.
ServiceNow는 KNN 및 기타 고급 알고리즘을 통합하여 조직이 AI를 통해 의사 결정을 개선하고 처리 시간을 단축하며 보다 효율적인 비즈니스 접근 방식을 구현할 수 있도록 지원합니다. 지금 바로 AI와 Now Platform의 혁신적인 기능을 경험해 보세요. 지금 ServiceNow 데모를 시청하세요.