1. K-NN(K-Nearest Neighbors, 최근접) 알고리즘
KNN 알고리즘은 지도학습에 사용되는 알고리즘으로, input에 따라 class가 정해진다.
KNN 알고리즘은 새로운 데이터가 입력됐을 때 가장 가까운 K개의 데이터를 기반으로 class를 예측한다.
KNN이 가장 가까운 데이터를 찾는 방법은 유클리디안 거리를 바탕으로 찾는다.
거리를 바탕으로 가장 가까운 K개의 데이터를 찾는다.
다음과 같이 새로운 input이 들어왔을 때 K=3인 가장 가까운 데이터를 찾는다.
이 때 세모는 1개, 네모는 2개이기 때문에 별의 class를 네모라고 예측한다.
만약 K값이 짝수일 경우 세모가 2개, 네모가 2개가 되어 예측이 힘들어진다.
그러므로 K값은 홀수로 지정하는 것이 좋다.
2. 정규화
만약 class A에 해당하는 데이터의 양이 B보다 훨씬 많아서, 육안으로 봤을 때 새로운 input의 라벨은 class B같지만, K=7일 때 KNN 알고리즘을 사용하면 A로 해석한다.
또는 분포의 차이가 너무 많이나서 정확도가 떨어질 수 있다.
A의 분포가 0~10이라고 하면
B의 분포는 약 2 ~6인것을 볼 수 있다.
이러한 분포의 차이 때문에도 정확도가 떨어질 수 있다.
그래서 데이터에 대해 정규화를 해야한다.
정규화의 방법은 다양하지만 크게 2가지가 있다.
1) 최소-최대 정규화
최소-최대 정규화는 모든 feature에 대해 각각의 최소값을 0, 최대값을 1로 설정하여 반환한다.
만약 최소가 20, 최대가 50인 데이터가 있을 때 정규화를 통해 20 -> 0으로, 50 -> 1로 인식하여 0과 1사이의 데이터로 범주를 정규화할 수 있다.
하지만 최소-최대 정규화는 치명적인 단점을 가지고 있다.
다음과 같이 규격외의 데이터, 즉 이상치가 나타날 경우, 정규화가 효과적으로 나타나지 못한다.
또한 데이터의 최대가 100이라고 가정했을 때 입력이 100 이상의 데이터가 들어올 수도 있다.
2) Z-점수 표준화
X의 범위를 평균으로부터 몇 표준편차만큼 떨어져있는지 확인하는 것이다.
표준편차와 평균을 구해서 X를 정규화한다.
이때는 최소와 최대가 정해져있지 않고, 표준편차로 계산되기 때문에 오차가 넘지 않는다.
'Sign Tracker' 카테고리의 다른 글
Mediapipe hand - gesture 판단 (0) | 2024.10.02 |
---|