3. KNN 알고리즘
특징 설명
최고인접 다수결 기존 데이터 중 가장 유사한 k개의 데이터를 측정하여 분류
유사도(거리) 기반
유클리디안 거리(Euclidian's distance), 마할라노비스의 거리(Mahalanobis' distance),
코사인 유사도(cosine similarity)등을 활용
Lazy learning 기법
- 새로운 입력 값이 들어온 후 분류시작
- 데이터셋을 저장만 하고 일반화된 모델을 능동적으로 만들거나 하지는 않음
- 데이터가 들어온 후에 분류 및 처리한다는 의미
단순 유연성 모형이 단순하며 파라미터의 가정이 거의 없음
NN(Nearest Neighbors)
개선
- KNN은 가장 근접한 k개의 데이터에 대한 다수결 내지 가중합계 방식으로 분류
- NN의 경우 새로운 항목을 분류할 때 가장 유사한 instance를 찾아서
같은 class에 일방적으로 분류 시 잡음 섞인 데이터에는 성능이 좋지 못함
- 새로운 fingerprint를 기존 클러스터 내의 모든 데이터와 Instance 기반거리를 측정하여 가장
많은 속성을 가진 클러스터에 할당하는 군집알고리즘
- 기존 데이터 중 가장 유사한 k개의 데이터를 이용해서 새로운 데이터를 예측하는 방법
4. KNN 알고리즘
1) 새로운 fingerprint입력(물음표, 동그라미) 확인
2) 거리기반 k개 데이터를 training set에서 추출
3) 추출데이터들의 클러스터, label 확인
4) 다수결(Majority voting) 의한 클러스터 매칭
-> 결과 새로운 fingerprint는 K가 3인 경우 삼각형, 5인 경우 사각형 클러스터에 매칭됨
5. KNN 알고리즘
동작원리 설명
Fingerprint 확인
- 새로운 입력값 확인
- 가까운 데이터는 같은 Label(클러스터 가능성 큼)
- 기존의 모든 데이터와 새로운 fingerprint와 비교준비
명목변수 기반 그룹분류
- 기존의 저장되어있는 데이터 셋의 label화
- 서로 다른 범주 데이터를 정규화 수행
- 분류기 검사 수행
예: 데이터의 90%를 훈련데이터 10%를 테스트로 활용
거리측정
- 유클리디언 거리
- 메모리기반 fingerprint와 모든 데이터간의 거리계산
- 계산된 거리의 정렬수행
K 선정
- 양의 정수값, 정렬된 거리 중 가장 가까운 k개 데이터 선정
- 여러 k값을 모델링 후 가장 성능이 좋은 k값 선정
- 노이즈 클수록 큰 k값 선정이 좋음
- 작은 k는 극단값 및 노이즈를 허용하여 클러스터링 오류가능
클러스터 매칭
- 명목 데이터 경우, 다수결(majority voting)기반의 클러스터 매칭 수행,
k개 데이터가 많이 속해있는 클러스터로 새로운 값을 분류
- 수치형 데이터의 경우 k개 데이터의 평균(or 가중평균)을 이용하여 클러스터 매칭
6. KNN 알고리즘
장점 설명
효율성 - 훈련데이터에 잡음이 있는 경우에도 적용가능
결과일관성
- 훈련데이터의 크기가 클 경우 효율적임
(데이터의 수가 무한대로 증가시 오차율이 베이즈 오차율의
두 배보다
항상 나쁘지 않음을 보장)
- 임의의 k값에 대해 베이즈 오차율에 항상 근접함을 보장
학습간단 - 모형이 단순하고 쉬운 구현 가능
유연한 경계
- 거리의 변형, 가중치 적용용이
- 유클리디언, 코사인유사도, 가중치 적용, 정규화적용 용이
모델의 유연성
- 데이터에 대한 가정 반영 및 변형이 간편
- 변형데이터의 training data set 기반 분류기 검증용이
높은 정확도
- 사례기반으로 높은 정확성
- 훈련데이터 클수록 클러스터 매칭 정확성 좋아짐
단점 설명
성능가변성
- k값 선정에 따라 알고리즘의 성능이 좌우됨
- k값 최적화, under/overfitting의 고려필요
높은 자원요
구량
- 데이터 셋 전체를 읽어서 메모리에 기억
- 새로운 개체 n을 읽어서 메모리 내의 데이터
셋과 비교
고비용
- 모든 훈련샘플과의 거리를 계산하여야 하므
로 연산비용(cost)이 높음
공간예측 부
정확
- 공간정보 예측모델에서는 영향변수 많이 적
용이 어려움
거리계산 복
잡성
- 모든 데이터와의 유사도, 거리측정 수행필
요
노이즈에 약
함
- 노이즈로 인해 큰 k 설정을 필요로 함
- 민감하고 작은 데이터 무시되는 under
fitting 문제야기
7. 전제조건
유사도 (1) 코사인 유사도(cosine similarity)
두 벡터의 원소들은 모두 양수
•벡터의 원소수는 같아야 함
용도
1.검색 엔진에서 검색어(Query)와 문서(Document)의
유사도를 구해서 가장 유사도가 높은 것을 먼저 보여주
기 위한 기본 랭킹 을 위한 알고리즘으로사용 .
2.텍스트마이닝에서 사용 : 단어집합들 간의 유사도를
구하기 위해서 코사인 유사도를 사용하는 것이 빈번하게
나옵니다. 그래서 word2vec 같은 딥러닝 모델 사용.
3.클러스터링(Clustering, 군집화) . 군집화 모델에서
데이터 포인트를 서로 묶을때
8. 코사인 유사도(cosine
similarity
내적 공간의 두 벡터간 각도의 코사인값을 이용하여 측정된 벡
터간의 유사한 정도
두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다.
두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반
대의 방향을 가지면 -1의 값을 갖는다.
즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다
고 판단할 수 있다.
유사도 (1) 코사인 유사도(cosine similarity)
9. 자카드 (cosine similarity
boolean 속성의 두개의 오브젝트 A,B에 대하여 A와B가 1(true)
의 값을 가지는 교집합의 개수를 A와 B가 1(true)의값을 가지는
합집합의 개수는 나눈 수
유사도 (2) 자카드 유사도(cosine similarity)
10. 피어슨 유사도
두 벡터의 상관계수를 의미.
유사도가 높을경우1, 낮을경우 -1을 가짐
특정인물의 점수기준이 극단적으로 너무 낮거나 높을때 이를 막
기 위해 사관계수를 사용하는 방법.
유사도 (3) 피어슨피 유사도(Pearson similarity)