AI

머신러닝 알고리즘 종류 - K-최근접 이웃 알고리즘 (K-Nearest Neighbors, KNN)

more_biscuit 2024. 7. 24. 15:44

 K-최근접 이웃 알고리즘 (K-Nearest Neighbors, KNN)

 

K개의 데이터, 즉 얼마나 많은, 몇개의 데이터를 이용하여 판단할지가 관건입니다.

**1. 왜 사용하는가?**  
KNN은 데이터를 분류하거나 회귀 분석할 때 사용되는 간단하면서도 효과적인 알고리즘입니다. 특히 KNN은 패턴 인식, 통계 및 데이터 분석 분야에서 많이 사용되며, 다음과 같은 상황에서 유용합니다:
- 분류: 새로운 데이터가 어떤 클래스에 속하는지 예측할 때
- 회귀: 새로운 데이터에 대한 연속적인 값을 예측할 때

**2. 누가 개발했는가?**  
KNN 알고리즘은 1951년 Evelyn Fix와 Joseph Hodges가 개발했습니다. 이들은 패턴 인식 문제를 다루기 위해 KNN을 제안했습니다. 이후 이 알고리즘은 다양한 분야에서 널리 사용되며 발전해왔습니다.

**3. 언제 사용하는가?**  
KNN은 다음과 같은 경우에 적합합니다:
- 데이터가 소규모이거나 중간 크기일 때
- 데이터의 특징 공간이 고차원일 때도 사용 가능하지만, 계산 비용이 증가할 수 있습니다
- 모델 해석이 간단하고 직관적인 것이 필요할 때

**4. 무엇을 위해 사용하는가?**  
KNN은 주로 다음과 같은 문제를 해결하기 위해 사용됩니다:
- 분류 문제: 예를 들어, 이메일이 스팸인지 아닌지 분류
- 회귀 문제: 예를 들어, 특정 상품의 가격 예측

**5. 어떻게 사용하는가?**  
KNN은 다음과 같은 방식으로 작동합니다:
1. **데이터 포인트 간 거리 계산:** 새로운 데이터 포인트와 기존 데이터 포인트들 간의 거리를 계산합니다. 일반적으로 유클리드 거리 또는 맨해튼 거리를 사용합니다.
2. **최근접 이웃 선택:** 계산된 거리 중 가장 가까운 K개의 이웃을 선택합니다.
3. **예측:** 이웃들의 라벨을 기반으로 분류나 회귀를 수행합니다. 분류의 경우, 다수결 투표로 라벨을 결정하고, 회귀의 경우, 이웃들의 평균값을 예측값으로 사용합니다.

**예시:**  
어떤 사람이 새로운 주택을 구매하려고 하는데, 그 주택의 가격을 예측하고 싶다고 가정해봅시다. 이 경우, KNN을 사용하여 다음과 같은 절차를 따를 수 있습니다:
1. 기존의 주택 데이터베이스에서 각 주택의 크기, 위치, 방의 수 등의 특성과 가격 데이터를 수집합니다.
2. 새로운 주택의 특성과 기존 주택들의 특성 간의 거리를 계산합니다.
3. 가장 가까운 K개의 주택을 선택하고, 이 주택들의 평균 가격을 계산하여 새로운 주택의 가격을 예측합니다.

KNN은 단순하지만 효율적인 방법으로, 다양한 데이터 분석 문제에 적용할 수 있습니다. 

다만, K의 선택과 데이터 스케일링 등의 요소가 성능에 큰 영향을 미칠 수 있습니다.