2024.12.07 - [Data Science/실습] - DS 실습 17- KNN(K-Nearest Neighbor)
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)
- 거리를 계산할 수 있어야 하기에, 모두 수치형 데이터가 요구됨
-> 범주형 데이터의 경우 가변수화(더미변수)
유클리디안 거리 ( 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 개의 값 중 최빈값이 정답
'Data Science > 이론' 카테고리의 다른 글
DS 이론 23- 의사결정나무,앙상블-랜덤포레스트 (1) | 2024.12.10 |
---|---|
DS 이론 22- 나이브베이즈분류, 예제 (0) | 2024.12.08 |
DS 이론19~20- 선형회귀분석(머신러닝),로지스틱 회귀분석* (0) | 2024.12.03 |
DS 이론16~18-머신러닝, 특성공학(Under/Over fitting, 모델평가기법) (0) | 2024.12.02 |
DS 이론13~15-데이터 전처리(결측치, 정규화, 변환) (0) | 2024.11.23 |