상세 컨텐츠

본문 제목

[K-DIGITAL] 머신러닝 알고리즘(4) KNN, K-MEANS, PCA

PYTHON/K-DIGITAL

by ranlan 2021. 7. 1. 21:34

본문

728x90

멋쟁이사자처럼 X K-DIGITAL Training - 06.30

 

 

KNN 알고리즘 (K-Nearest Neighbor Algorithm, K-최근접이웃알고리즘)

분류나 회귀에 사용되는 지도학습 알고리즘

새로운 데이터를 입력 받았을 때 K개의 근접한 데이터에 따라 분류, 결정

- k=3일때 Class B

- k=7일때 Class A

 

k가 작을수록 locally sensitive(과적합, 근처 데이터의 영향을 많이 받음) → 적절한 k를 찾아야함

 

 

 

K-MEANS (K-평균)

데이터를 k개의 클러스터로 군집화하는 비지도학습 알고리즘

 

1) k개의 임의의 중심값을 고름(데이터 샘플 중)

2) 각 데이터마다 선택한 중심값까지의 거리를 계산하여 가장 가까운 중심값의 클러스터로 할당

3) 각 클러스터에 속한 데이터들의 평균값으로 중심값 이동

4) 데이터에 대한 클러스터 할당이 변하지 않을 때까지 2, 3 반복

 

 

* KNN는 분류 알고리즘(Clustering) / K-Means은 군집화 알고리즘(Classification)

 

 

 

PCA (Principal Component Analysis, 주성분 분석)

차원 축소를 통해 최소 차원의 정보로 원래 차원의 정보 모사(approximate)하는 알고리즘

차원 축소(Dimension Reduction) : 고차원 벡터에서 일부 차원의 값을 모두 0으로 만들어 저차원 벡터로 줄이는 것

→ 원래 고차원 벡터의 특성을 최대한 살리기 위해 가장 분산이 높은 방향으로 회전 변환(rotation transform)

 

* 차원의 저주(Curse of Dimensionality)

데이터 용량이 커지면서 불필요한 샘플이 많아지는 것

데이터 학습을 위해 차원이 증가하며 학습 데이터 수가 차원의 수보다 작아져 성능이 저하되는 형상

해결 방안 - PCA, LDA(Linear Discriminant Analysis), LLE(Locally Linear Embedding), MDS(Multidimensional Scaling), Isomap ..

 

* 차원 축소를 하는 이유?

- 시각화를 통해 데이터 패턴 쉽게 인지

- 노이즈 제거

- 메모리 절약

- 불필요한 feature 제거로 모델 성능 향상

 

 

 

728x90

관련글 더보기

댓글 영역