HeYStRanGeR
article thumbnail

(23.03.18)

 

이번에 정리할 unsupervised learning 모델은

k-means clustering, PCA 이다. 

k-means와 pca 코드 구현한 것 >< 

https://github.com/gompaang/machine_learning_practice/blob/main/code/support_vector_machine.ipynb

https://github.com/gompaang/machine_learning_practice/blob/main/code/pca.ipynb

 

GitHub - gompaang/machine_learning_practice

Contribute to gompaang/machine_learning_practice development by creating an account on GitHub.

github.com


unsupervised learning: label이 없는 데이터가 주어졌을 때, 데이터들의 패턴을 파악한다. 

 

 

k-means clustering

- label이 없는 data에 대해 k개의 cluster로 나누어주는 방법이다. k는 우리가 직접 설정해주어야하는 hyperparameter이다. 원리가 단순하고 직관적이며, 성능이 좋다.

- input: training set (x만 있음. y(label)은 없음), k (만들어줄 cluster의 개수)

- algorithm

  1) training set에서 랜덤하게 k개의 중심점을 고른다.

  2) trining set의 data들과 k개의 중심점의 거리를 비교하여 각각 가장 가까운 중심점에 clustering한다.

  3) 각 cluster의 중심점을 새롭게 계산하여 설정한다.

  --> 중심점이 바뀌지 않을 때까지 2번과 3번 과정을 반복한다. 

 

- cost function: 각 데이터들과 cluster 중심점 사이 거리의 평균

 

- 중심점을 어디로 잡느냐에 따라 clustering 결과가 달라지는데, 학습을 여러번 돌려보거나 training set을 랜덤하게 여러번 추출하여 돌려보면 해결할 수 있다. 

 

- k를 정하는 방법으로는 elbow method가 있다 

-----> k의 개수를 늘려가며 cost의 추이를 파악하고, 꺾이는 지점의 k를 사용한다.

 

 

 

 

 

pca (principal component analysis)

- pca는 차원 축소 방법이다. 데이터는 최대한 고정하는 게 낫기 때문에 overfitting 문제를 해결하기 위해 pca를 사용하고자 한다면, regularization을 먼저 사용하는 것이 좋다. 

- 차원축소를 하는 이유는 크게 4가지가 있다.

  1) data compression

  2) data visulaization

  3) statistical -> fewer dimenstion은 결국 better generalization이다.

  4) noise removal -> model parameter를 결정하는데 불필요한 feature 제거

 

 

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!