🟩 지도 학습의 대표적인 머신 러닝 방법
🟡 분류 (classification)
-분류는 미리 정의된, 가능성 있는 여러 클래스 레이블(class label) 중 하나를 예측하는 것
-두 개로만 나뉘는 이진 분류(Binary Classification)와 셋 이상의 클래스로 분류하는 다중 분류(multiclass classification)로 나뉜다.
-분류예시 : 얼굴 인식, 숫자 판별 (MNIST)
🟡 회귀(regression)
-연속적인 숫자 또는 부동소수점수 (실수)를 예측하는 것
-회귀예시: 주식 가격을 예측하며 수익을 내는 알고리즘 등
KNN이란 ?
: 게으른 학습(lazy learner) 또는 사례중심학습(instance-based learning)
*게으른 학습: 알고리즘은 훈련 데이터에서 판별 함수(discriminative function)를 학습하는 대신 훈련 데이터 셋을 메모리에 저장하는 방법.
< 특징 >
-주변 k개의 자료의 클래스(class) 중 가장 많은 클래스로 특정 자료를 분류하는 방식
-새로운 자료를 가장 가까운 자료 5개 (k = 5)를 이용하여 투표하여 가장 많은 클래스로 할당한다.
-training-data 자체가 모형일 뿐 어떠한 추정 방법도 모형도 없음.
-즉 데이터 분포를 표현하기 위한 파라미터를 추정하지 않음.
-매우 간단한 방법이지만 performance는 떨어지지 않음.
- 데이터의 차원이 증가하면 차원의 저주(curse of dimension) 문제가 발생함.
-즉 KNN은 차원이 증가할수록 성능 저하가 심함
-데이터의 차원(dimensionality)이 증가할수록 해당 공간의 크기(부피)가 기하급수적으로 증가하여 동일한 개수의 데이터의 밀도는 차원이 증가할수록 급속도로 희박(sprase)해짐
-차원이 증가할수록 데이터의 분포 분석에 필요한 샘플 데이터의 개수가 기하급수적으로 증가하게 되는데 이러한 어려움을 표현한 용어가 차원의 저주임
🟩 KNN의 하이퍼파라미터
🟡 탐색할 이웃 수(k)와 거리 측정 방법
- k가 작을 경우 데이터의 지역적 특성을 지나치게 반영하여 과접합(Overfitting)발생
- 반대로 매우 클 경우 모델이 과하게 정규화(Underfitting)발생
💛 그러니까 k가 너무 작으면 정말 가까운 이웃만 고려하기 때문에 너무 지엽적인 견해로 분류할 수 있고 이때 Overfitting이 발생한다. 반대로 K가 너무 크면 너무 많은 이웃을 고려하여 새로운 변수를 분류하기 때문에 성급한 일반화를 하게되어 Underfitting이 발생할 수 있다는 것이다.
🟡 다수결 방식(Majority voting): 이웃 범주 가운데 빈도 기준 제일 많은 범주로 새 데이터의 범주를 예측하는 것
투표의 방식과 비슷!
🟡 가중 합 방식(Weighted voting): 가까운 이웃의 정보에 좀 더 가중치를 부여
🟩 KNN의 장단점 요약
🟡장점
- 학습데이터 내에 끼어있는 노이즈의 영향을 크게 받지 않음.
- 학습데이터 수가 많다면 꽤 효과적인 알고리즘
- 마할라노비스 거리와 같이 데이터의 분산을 고려할 경우 매우 강건한 방법론
*마할라 노비스 거리(Mahalanobis distance)는 평균과의 거리가 표준편차의 몇 배인지를 나타내는 값. 즉 어떤 값이 얼마나 일어나기 힘든 값인지, 또는 얼마나 이상한 값인지를 수치화하는 한 방법
🟡단점
- 최적 이웃의 수(k)와 어떤 거리 척도(distance metric)가 분석에 적합한지 불분명해 데이터 각각의 특성에 맞게 연구자가 임의로 선정해야 함
- best K는 데이터 마다 다르기 때문에 탐욕적인 방식(Grid Search)으로 탐색
- 새로운 관측치와 각각의 학습 데이터 사이의 거리를 전부 측정해야 하므로 계산시간이 오래 걸리는 한계가 있음.
🟡KNN의 계산복잡성을 줄이려는 시도들
*Locality Sensitive Hashing
*Network based Indexer
*Optimized product quantization
출처 : https://github.com/sejongresearch/2022.MachineLearning
'프로그래밍 > 기계학습' 카테고리의 다른 글
Logistic Regression (로지스틱 회귀) (0) | 2022.07.29 |
---|---|
다중선형회귀 (Multiple Linear Regression) (0) | 2022.07.29 |