Python

[Python] K-means Algorithm

SangRok Jung 2022. 11. 17. 14:02
반응형

Unsupervised Learning(Clustering Algorithm)


  • 비지도 학습
  • Clustering 데이터에서 비슷한 객체들을 하나의 그룹으로 묶는 것.
  • 유사도(거리) 정보 기반
  • 좌표에 거리에 따라 유사도를 측정.

 

 

 

 

 

 

 

 

CLUSTERING ALGORITHM


K-mean clustering : 쉽고 간단, 현업에서 시계열 클러스터링을 많이 사용.

Hierarchical clustering

Density-based spatial clustering of applications with noise(DBSCAN)

Gaussain mixture model

Self-organizing map(SOM)

 

 

 

 

 

 

 

유클리디안 거리 = L2 DISTANCE


▶코사인 유사도

  • 두 벡터 사이의 코사인 각도를 구해 서로의 유사도를 구하는 방식
  • 텍스트 데이터의 유사도를 구하는 방법 중 하나
  • 데이터 셋의 길이 차이가 심한 상황일 때도 데이터들의 유사도를 판단 할 수 있다.

 

 

 

 

 

 

 

 

 

K-means Algorithm.


▶ Clustering(군집화)

대표적인 별도의 레이블이 없는 데이터 안에서 패턴과 구조를 발견하는 비지도 학습.

Classfication(분류)와는 엄연히 다르다. Classfication은 미리 레이블이 붙어 있는 데이터들을 학습한뒤 새로운 데이터에 대해 분류를 수행하지마느 Clustreing은 레이블을 모르더라도 비슷한 속성들을 가진 데이터들을 묶어 주는 역할을 한다.

 

▶ 군집화의 사용 예

  • 추천 엔진 : 사용자의 경험을 개인화 하기 위해 비슷한 제품 묶어주기.
  • 검색 엔진 : 관련 주제나 검색 결과 묶어주기.
  • 시장 세분화 : 지역, 인구 통계, 행동에 따라 비슷한 고객들 묶어주기.

 

▶ 군집화의 목표

서로 유사한 데이터들을 같은 그룹으로, 서로 유사하지 않은 데이터는 다른 그룹으로 분리하는 것이 된다.

 

 

▶ K-means 알고리즘

K는 데이터의 세트에서 찾을 것으로 예상되는 클러스터 그룹 수를 말한다.

means는 각 데이터로부터 그 데이터가 속한 클러스터의 중심까지의 평균 거리를 말한다.( 이 값을 최소화 하는것이 알고리즘의 목표가 된다.)

  • 몇개의 그룹을 묶을것인가?
  • 데이터의 유사도를 어떻게 정의할 것인가?

 

 

 

 

 

 

 

 

 

  • Week Points
    • Sensitive results from initial points
    • Ball-shaped clusters
    • Sensitive to noise points

 

 

 

▶ 군집도 이상 해결법

일종의 하이퍼파라미터로서 해결이 가능하다.

  •  장점
    • 계산이 쉽다. 다른 군집화 알고리즘에 비해 복잡도가 낮다.
    • 구현이 쉽고 다양한 언어와 플랫폼에서 제공되는 알고리즘이다.
  • 단점
    • 노이즈에 매우 민감하다.
    • 군집 개수를 사전에 지정한다.
    • 앞의 몇 가지 상황에서는 최적의 군집 구조를 찾기 어렵다.
반응형

'Python' 카테고리의 다른 글

[Python] Tensorflow  (1) 2022.12.19
[Python] Titanic Deep Learning  (0) 2022.12.19
[Python] PCA, LDA  (0) 2022.11.17
[Python] openCV : Matching  (0) 2022.11.17
[Python] openCV : Moments  (0) 2022.11.17