(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
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 제거