Creo Reference Room/Preferences
Orange3] Model #4-k-NN(k-Nearest Neighbors)
ToolBOX01
2025. 4. 10. 10:21
▣ k-NN
k-Nearest Neighbors (kNN) 알고리즘은 지도 학습의 일종으로, 새로운 데이터 포인트의 클래스 또는 값을 예측하기 위해 훈련 데이터셋에서 가장 가까운 k개의 이웃을 활용합니다. Orange3는 데이터 분석 및 머신러닝을 위한 강력한 오픈 소스 플랫폼이며, kNN 알고리즘을 쉽게 사용할 수 있는 다양한 기능을 제공합니다.
k-NN 알고리즘의 기본 원리:
- 거리 측정: 예측하려는 새로운 데이터 포인트와 훈련 데이터셋의 모든 데이터 포인트 간의 거리를 계산합니다. 일반적으로 유클리드 거리, 맨하탄 거리 등의 거리 측정 방식을 사용합니다.
- 이웃 선택: 계산된 거리들을 기준으로 가장 가까운 k개의 훈련 데이터 포인트를 선택합니다. 여기서 'k'는 사용자가 미리 정의하는 하이퍼파라미터입니다.
- 예측: 선택된 k개의 이웃들의 클래스 또는 값을 기반으로 새로운 데이터 포인트의 클래스 또는 값을 예측합니다.
- 분류 (Classification): k개의 이웃 중 가장 많은 클래스로 새로운 데이터 포인트를 분류합니다. 투표 방식 또는 가중치 투표 방식을 사용할 수 있습니다.
- 회귀 (Regression): k개의 이웃들의 목표 변수 값들의 평균 또는 중앙값으로 새로운 데이터 포인트의 값을 예측합니다.
▣ k-NN 워크플로우
- File 데이터셋을 불러오는 위젯. 예: iris.tab, titanic.tab
- Data Sampler 데이터셋을 학습용/검증용으로 나누기 위해 사용. 예: 70:30 비율
- k Nearest Neighbors 선택한 k값에 따라 분류 수행. 거리 기반으로 가까운 이웃을 참조
- Test & Score 모델 성능 평가. 정확도, AUC, LogLoss 등의 지표 확인 가능
▣ k-NN 위젯 설정
k-NN 위젯을 선택하면 다음과 같은 주요 설정 옵션을 조정할 수 있습니다.
- Number of neighbors (k): 고려할 이웃의 개수를 설정합니다. 이 값은 모델의 성능에 큰 영향을 미치므로 적절한 값을 찾는 것이 중요합니다. 일반적으로 홀수 값을 사용하여 동점을 방지합니다 (분류 문제의 경우).
- Distance metric: 거리 측정 방식을 선택합니다 (예: Euclidean, Manhattan, Chebyshev). 데이터의 특성에 따라 적절한 거리 측정 방식을 선택해야 합니다.
- Weighting: 이웃 간의 거리에 따른 가중치 부여 방식을 설정합니다.
- Uniform: 모든 이웃에 동일한 가중치를 부여합니다.
- Distance: 가까운 이웃에 더 높은 가중치를 부여합니다.
- Algorithm: k-Nearest Neighbors 알고리즘의 구현 방식을 선택합니다 (예: BallTree, KDTree, Brute-force). 데이터의 크기와 차원에 따라 효율적인 알고리즘을 선택할 수 있습니다.
▣ k-NN 워크플로우 동영상