Data Science/이론

DS 이론 21- KNN 알고리즘

에너지_2 2024. 12. 8. 18:01
728x90
반응형

2024.12.07 - [Data Science/실습] - DS 실습 17- KNN(K-Nearest Neighbor)

 

DS 실습 17- KNN(K-Nearest Neighbor)

- 새로운 값은 기존의 데이터를 기준으로 가장 가까운 k개의 최근접 값을 기준으로 분류됨- k가 짝수되는 것은 피하도록- 과적합: k 가 1에 가까울수록 과소적합: k가 클수록 KNN 회귀(Regression)- 분

sometipsfor.tistory.com

 

kNN 알고리즘

 

- 특정 데이터를 k개의 인접한 요소를 기반으로 예측하는 지도학습 알고리즘

   -> "가깝다"는 판단의 기준 필요 => distance  거리계산이 필요

 

- k 값이 1에 가까우면 과적합이 되며, 값이 커질수록 모델이 단순해지지만 과소적합이 되기에 적절한 k값을 선택해야한다.

  "k 값은 답이 없다"

    ->  k값을 조정하며 값을 찾는 것이 중요하다. k 값에 따라 예측값이 바뀌기 때문에!!

    -> 성능평가를 하면서 적절한 k 값을 찾는 것임

    -> 내부 알고리즘 구현에 따라 k 값은 계산시간에 영향이 적음. 즉, 계산을 오래한다고 해서 적절한 k 값이 나오는 게 아님

 

- k 값은 대체 홀수로 정함. 데이터가 많은 경우에는 정확히 나오는 경우가 많지 않기 때문에 꼭 홀수인 것은 아님! 

 

- lazy learning(게으른 학습) 특성을 갖는다. train 과 test data 세트로 분리하지만,,,,

  평가 데이터세트가 인입되기 전에 train data set 를 사용한 모델 학습이 없음  "다른 알고리즘과 차이점"

  ( = 테스트 데이터가 들어오기 전에 모델 학습이 없음)

   -> 보통 머신러닝 알고리즘은 train data 를 사용하여 특정한 규칙이나 수식을 학습하고,

       모델은 데이터를 일반화할 수 있는 모델 파라미터(예: 회귀 계수, 트리 구조, 가중치 등)를 생성하여

       이후 평가 데이터(test data)에 대해 학습한 내용을 기반으로 예측을 수행합니다

         ex) 선형 회귀 모델은 학습 데이터에서 기울기와 절편(모델 파라미터) 을 학습합니다.

    -> 반면, kNN은 train data 를 바탕으로 규칙이나 파라미터를 미리 학습하는 과정을 거치지 않고,

        새로운 데이터 포인트(test  data)가 들어왔을 때, 이 데이터를 기존 train data 와 비교하여

        가장 가까운 k개의 이웃을 기반으로 예측을 수행합니다.

 

 

- 종속변수에 따라, 분로 / 회귀 모델로 나뉨

 

- 비모수 방식이며 instance-based 알고리즘

 

  • 비모수 방식: 데이터 분포에 대한 가정이 없으며, 거리 계산만으로 의사결정을 내립니다.
  • Instance-based: 학습 데이터를 그대로 저장하고, 예측 시점에 해당 데이터를 사용하여 계산을 수행합니다. 
    • 거리 개념을 사용하는 알고리즘의 경우 Normalization 사용을 항상 검토할 필요가 있다
    • 결과 편향을 사전에 예방하기 위한 모두 0~1 범위로 변환되는 정규화 권장
    • sklearn.preprocessing : MinMaxScaler / StandardScaler

 

 

 

거리측정

 Distance Metric For Your Machine Learning Model

 

거리 기준: Minkowski Distance with parameter p (Default p = 2)

민코프스키 거리. x와 y는 좌표가 아닌 기존 값과 새로운 값을 의미함

 

- 거리를 계산할 수 있어야 하기에, 모두 수치형 데이터가 요구됨

    -> 범주형 데이터의 경우 가변수화(더미변수)

 

유클리디안 거리 p = 2 )

- n 차원의 공간에서 두 점간의 최단 거리를 계산

ex) 4차원 공간에서 두 점 P1 (1,2,3,4)  과 P2 (4,6,8,10)  간의 유클리디안 거리를 계산하세요.

 

 

 

맨해턴 거리 ( p = 1 ) 

-  두 점 좌표간 절대값 차이 계산  - 시험에서 많이 사용됨 

 

마할라노비스 거리

-각 변수의 분산과 공분산(상관성) 구조를 고려한 통계적 거리

- 공분산 행렬이 단위행렬이 되는 경우, 유클리디안 거리와 같음

 

코사인 유사도

- 두 벡터의 방향이 같을 경우 1, 90도 각을 이루면 0,  방향이 반대인 경우 -1

 

장점

- 단순한 알고리즘으로 이해, 해석이 쉬움

- 데이터에 대한 기본 가정이 없으므로 ( 비모수 방식 ), 비선형 데이터에 매우 유용

- 분류, 회귀모델 가능

- 이상치 찾기에도 활용 가능 (이상치 민감)

- 대체로 우수한 결과를 보여줌

 

단점

- 높은 계산 비용

- 데이터 양이 많은 경우 계산 속도가 늦고, 데이터 지역 구조에 민감

- k 값 찾는 게 쉽지 않음. 과적합/ 과소적합 발생 가능성

 

 

 

- 이상치의 영향

분류 문제: 이상치가 특정 클래스에 속하면, 그 주변에 있는 새로운 데이터 포인트들이 잘못된 클래스로 분류될 수 있습니다.

회귀 문제: 이상치의 값이 극단적이라면, 평균을 계산할 때 큰 영향을 미쳐 결과를 왜곡할 수 있습니다.

 

 

예제) 주어진 좌표값이 있고, 새로운 좌표는 어느 그룹에 속하는가? k = 3일 때로 가정.

 -> 새로운 좌표에 가장 가까운(거리계산 값이 작은) 3 개를 보고 어느 그룹에 속하는 지 판단

 -> 가장 가까운 3 개의 값 중 최빈값이 정답

반응형
300x250

 

728x90
반응형