Hands-On Machine Learning with Scikit-Learn and TensorFlow 책을 공부하고 내용을 정리한 글이다.
대부분의 ML은 지도학습으로 이루어지지만, 사실 모든 데이터는 거의 라벨링되어 있지 않다.
비지도학습에는 Dimensionality reduction, Clustering, Anomaly detection, Density estimation 등이 있다.
가까운 거리에 있는 값들을 보고 각 클러스터에 할당하는 것이다.
Clustering은 고객 분류, 새로운 데이터에 대한 분석, 차원 축소, 이상치 감지, 반지도학습, 검색 엔진, 이미지 픽셀 분류에 사용될 수 있다.
이처럼 cluster가 무엇인지에 대한 명확한 정의는 존재하지 않는다. 문맥에 따라 다양한 cluster가 존재하고 이에 맞게 기술을 사용하면 될 것이다.
K-Means 알고리즘은 빠르고 간단하게 클러스팅할 수 있는 기법 중 하나이다. 각각의 클러스터의 중심에서의 거리를 계산하고 그 거리에 따라 각 데이터를 적절한 클러스터에 할당한다.
만약 몇 개의 그룹으로 나뉘는지, 거리는 얼만큼으로 지정되어 있는지도 모른다면 임의로 설정한 다음에 계속해서 업데이트 해나가는 방식으로 진행된다.
알고리즘은 결국 수렴하겠지만, 시작점이 어떻느냐에 따라 수렴하지 못할 수도 있다.
(하이퍼파라미터 튜닝 또는 여러 번의 시도를 통해 시작점을 설정하는 방법도 있다.)
Elbow Rule(갑자기 확 꺾이는 지점)를 통해서 클러스터링 갯수를 지정한다.
K-Means는 좋은 알고리즘이지만, 한계가 존재한다.
우선, 완벽하지 않고 최대한 완벽하게 구현하기 위해서는 여러 번의 시도를 겪어야만 한다.
그리고 좋지 않게 나뉘어져도 성능 지표는 높게 나올 수 있고, 그 반대의 경우가 발생하기도 한다.
비슷한 색깔의 픽셀을 클러스팅하여 이미지 분류를 시도할 수도 있다.
이미지는 3차원으로 표현된다. -> (height, width, RGB)
다양한 색깔의 클러스터링 K-Means를 통해 이미지 분류를 할 수 있다.
(ex. 꽃 사진에서 색깔을 1, 2, 3, 4, ... 개의 색깔로 나누어 클러스터링 진행)
연속적인 부분에서의 클러스터링을 할 때는, 이 알고리즘을 활용한다.
아주 작은 값(입실론)의 거리를 측정한다.
아무 모양으로 클러스터링을 진행할 수 있고, 이상치에 대해 매우 엄격한 알고리즘이다.
Gaussian Mixture Model(GMM)은 확률 모형으로 여러 가우시안 모델(파라미터가 알려지지 않은)의 결합으로부터 생성된다.
Gaussian Mixture를 활용해서 이상치를 탐지하는 방법은 간단하다. low-density에 있는 값들은 이상치로 여겨질 수 있다.
- Probablity: 파라미터가 주어졌을 때, 결과 x가 나올 확률
- Likelihood: 결과 x가 주어졌을 때, 파라미터 셋의 확률
Bayesian Gaussian Mixture Models를 활용해서 쓸모 없는 클러스터는 0으로 수렴하거나 없애는 방식을 활용할 수도 있다.