들어가기 전!
모델 베이스 기법과 인스턴스 베이스 기법의 종류를 가볍게 보고 넘어가자.
더보기
Model-based learning: 선형/비선형 모델, Neural Network, 의사결정나무, Support vector machine...
☞데이터로부터 모델을 생성하여 분류/예측 진행
Instance-based learning: K-nearest neighbor, Locallly weighted regression...
☞별도의 모델 생성 없이 인접 데이터를 분류/예측에 사용
이 중 Nearest Neighbor를 알아보자.
KNN(K-Nearest Neighbor)
미지의 데이터로부터 K개의 가장 가까운 이웃을 선택하고 해당 이웃의 정보로 미지의 데이터를 분류/예측한다.
특징
- Instance-based learning: 각각의 관측치만을 이용하여 새로운 데이터 예측
- Memory-based learning: 모든 학습 데이터를 메모리에 저장한 후 이를 바탕으로 예측
- Lazy learning: 모델을 별도로 학습하지 않고 테스트 데이터가 들어와야 작동하는 알고리즘
분류 알고리즘
- 분류할 관측치 x를 선택
- x로부터 인접한 k개의 학습 데이터 탐색
- 탐색된 k개 학습 데이터의 majority class c를 정의
- c를 x의 분류 결과로 전환
예측 알고리즘
- 예측할 관측치 x를 선택
- x로부터 인접한 k개의 학습 데이터 탐색
- 탐색된 k개 학습 데이터의 평균을 x의 예측 값으로 반환
KNN의 하이퍼파라미터
1. K
인접한 학습 데이터를 몇 개까지 탐색할 것인가?
K가 매우 작을 경우: 지역적 특성을 지나치게 반영함(Overfitting)
K가 매우 클 경우: 다른 범주의 개체를 너무 많이 포함(Underfitting)
▶ 일정 범위 내로 K를 조정하여 가장 좋은 예측 결과를 보이는 K값을 선정한다.
분류 모델 |
예측 모델 |
$$MisclassError_k=\frac{1}{k}\sum_{i=1}^{k}I(c_i\neq \hat{c_i}) $$ $$for\,k=1,2,....k$$ |
$$SSE_k=\sum_{i=1}^{k}(y_i-\hat{y_i})^2$$ $$for\,k=1,2,...k$$ |
2. Distance Measure(1-유사도)
데이터 간 거리를 어떻게 측정할 것인가?
다양한 거리 측도가 존재하지만 데이터 내 변수들이 각기 다른 데이터 범위 및 분산을 가지므로 데이터 정규화(또는 표준화)를 통해 이를 맞추는 것이 중요하다.
2-1. 유클리디안 거리
일반적으로 사용하는 거리 척도. 두 관측치 사이의 직선 거리를 의미한다. $$d_{(X,Y)}=\sqrt{\sum_{i=1}^{p}(x_i-y_i)^2}$$
예) A=(2,0,0), B=(0,3,2)이면 $d_{(A,B)}=\sqrt{(0-2)^2+(3-0)^2+(2-0)^2}=\sqrt{17}$
2-2. 맨하탄 거리
직선 거리가 아닌, 각 좌표축 방향으로만 이동한 거리를 의미한다. $$d_{Manhattan(X,Y)}=\sum_{i=1}^{p}\left| x_i-y_i \right|$$
2-3. 마힐라노비스 거리
변수 내 분산과 공분산을 모두 고려하여 거리를 계산하는 방법. 공분산 행렬이 항등 행렬인 경우 유클리드 거리와 동일하다. $$d_{Mahalanobis(X,Y)}=\sqrt{(X-Y)^T{\sum}^{-1}(X-Y)}$$
2-4. 상관계수 거리
데이터 간 피어슨 상관계수를 거리 척도로 직접 사용. 데이터 패턴의 유사도를 반영할 수 있다. $$d_{Corr(X,Y)}=1-r \;\;(이때 \; r=\sigma_{XY})$$
2-5. 스피어만 상관계수 거리
$$d_{Spearman(X,Y)}=1-\rho$$ $$이때\; \rho=1-\frac{6\sum_{i=1}^{n}(rank(x_i)-rank(y_i))^2}{n(n^2-1)}$$
$\rho$는 스피어만 상관계수이며 데이터의 Rank를 이용하여 상관거리를 계산한다. $\rho$는 -1과 1 사이의 값을 가진다.
거리 측도에 대한 자세한 설명은 이전 포스팅을 참고하시길...
[딥러닝] 군집 분석 (Clustering)
들어가기 전... 머신러닝의 앙상블 기법에 대해 알아보자. 더보기 앙상블이란? 여러 Base 모델들의 예측을 다수결 또는 평균을 이용하여 예측의 정확성을 향상시키는 방법이다. Base 모델이 서로
bubble2.tistory.com
KNN의 장점과 한계점
장점
- 데이터 내 노이즈에 영향을 크게 받지 않으며 (마할라노비스 거리처럼) 데이터의 분산을 고려할 경우 강건하다.
- 학습 데이터의 수가 많을 경우 효과적이다.
한계점
- 파라미터 K의 값을 설정해야 한다.
- 어떤 거리 척도가 분석에 적합한지 알 수 없기 때문에 데이터의 특성에 맞는 거리 척도를 임의로 선정해야 한다.
- 새로운 관측치와 각각의 학습 데이터 간 거리를 전부 측정해야 하므로 계산 시간이 오래 걸린다.
Weighted KNN
거리 내 K개의 관측치가 전부 같은 가중치를 가져야 하는가? 라는 질문에서 출발한 모델.
즉 새 데이터와 기존 관측치의 거리에 따라 다른 가중치를 부여한다.
분류 모델 |
예측 모델 |
$$\hat{c}_{new}=max_c\sum_{i=1}^{k}w_iI(w_i\in c)$$ |
$$\hat{y}_{new}=\frac{\sum_{i=1}^{k}w_iy_i}{\sum_{i=1}^{k}w_i}$$ $$where \, w_i=\frac{1}{d_{(new,x_i)}^2}$$ |
마무리하며...
KNN은 새로운 관측치를 분류하거나 예측할 수 있는 아주 단순한 접근 방식이다.
선형 모델과 같이 학습 데이터로부터 특정 형태의 모델을 제시하는 것이 아니라 학습 데이터 내 유사한 관측치들만을 토대로 새로운 데이터를 예측한다.
Weight KNN알고리즘으로 데이터의 가중치를 고려할 수 있으며 보다 정확한 모델을 구축할 수 있다.