상세 컨텐츠

본문 제목

clustering

Coding

by linguana 2021. 3. 24. 13:00

본문

출처: scikit-learn.org/stable/modules/clustering.html#k-means

 

2.3. Clustering — scikit-learn 0.24.1 documentation

2.3. Clustering Clustering of unlabeled data can be performed with the module sklearn.cluster. Each clustering algorithm comes in two variants: a class, that implements the fit method to learn the clusters on train data, and a function, that, given train d

scikit-learn.org

레이블링이 안 되어있는 자료에 대해서 비지도 학습으로 클러스터링 하는 기법

 

클러스터링 알고리즘은 두가지 종류의 형태로 제공된다:

  • 클래스 (class): fit 메소드를 이용해서 훈련 데이터의 클러스터를 학습, 학습한 후에는 labels_라는 속성에 주어진다. (class.labels_)
  • 함수 (function): 훈련 데이터가 주어지면 정수 레이블 배열을 각 클러스터에 대응하여 반환

인풋 데이터

한가지 주지할 점은 이 모듈에서 제공되는 알고리즘은 다른 종류의 행렬을 인풋으로 받아들일 수 있다는 점이다. 모든 메소드는 (n_samples, n_features)의 모양을 취하는 표준 행렬 데이터를 인풋으로 받아들인다. sklearn.feature_extraction 모듈을 통해서 이러한 정보를 취할 수 있다.

AffinityPropagation, SpectralClustering, DBSCAN에 대해서는 (n_samples, n_samples) 꼴의 행렬을 취할 수도 있다. 이러한 정보는 sklearn.metrics.pairwise 모듈의 함수에서 취할 수 있다.


각 모델은 출처 참고하길.

나는 K-means만 좀 봐야겠다.

K-means 알고리즘은 분산을 기준으로 데이터를 분류하려고 한다. inertia (aka. within-cluster sum-of-squares)라는 지표를 최소화하는 방식을 사용한다. 굳이 번역하자면 '집단 내 제곱합'이다. 이 알고리즘은 몇 개의 클러스터로 구분할 것인지 사용자에게 알려달라고 한다. 이 알고리즘은 여러분야에서 대용량의 데이터에 잘 활용되고 있다.

  • X: 표본
  • N: 표본의 개수
  • C: 클러스터
  • K: 클러스터의 개수
  • 뮤j: 클러스터 내의 표본들의 평균 (centroids라고 불림), 표본들이랑 같은 공간에 있긴 하지만 딱히 표본은 아님 (당연하지 표본들 평균치 낸거니까)

이 알고리즘의 목표는 inertia를 최소화하는 centroid를 찾는 것. (케라스 모델의 loss 중 MSE랑 비슷하네)

 

 

 

'Coding' 카테고리의 다른 글

tf certificate 가상환경  (0) 2021.03.30
1.1 선형 모델  (0) 2021.03.26
전이학습 모델들  (0) 2021.03.23
tf.train.Checkpoint  (0) 2021.03.22
롯데 이미지 분류  (0) 2021.03.18

관련글 더보기