Machine Learning/Unsupervised Learning

[Unsupervised Learning][Clustering] Mean Shift (평균 이동)

데이터 세상 2022. 10. 5. 19:05

Mean Shift (평균 이동)

K-means와 유사하지만

  • K-means는 중심에 소속된 데이터의 평균 거리 중심으로 이동하는데 반해,
  • Mean Shift는 중심을 데이터가 모여있는 밀도가 가장 높은 곳으로 이동시킴

출처: https://ariz1623.tistory.com/225

 

평균 이동 알고리즘은 특정 대역폭을 가지고 최초의 확률 밀도 중심 내에서 데이터의 확률 밀도 중심이 더 높은 곳으로 중심을 이동

평균 이동은 데이터의 분포도를 이용해 군집 중심점을 찾음

확률 밀도 함수(PDF, Probability Density Function)를 이용, 가장 집중적으로 데이터가 모여 있어 확률 밀도 함수가 피크인 점을 군집 중심점으로 선정

 

  • KDE(Kernel Density Estimation)로 확률 밀도 함수를 찾음
  • KDE를 이용하여 데이터 포인트들이 데이터 분포가 높은 곳으로 이동하면서 군집화를 수행
  • 별도의 군집화 개수를 지정하지 않고, 데이터 분포도에 기반하여 자동으로 군집 개수 선점

 

KDE(Kernel Density Estimation)

Kernel 함수를 통해 어떤 변수의 확률 밀도 함수를 추정하는 대표적인 방법

관측된 데이터 각각에 커널 함수를 적용(K(x-xi))한 값을 모두 더한 뒤 데이터 건수로 나눠 확률 밀도 함수를 추정

커널 함수는 대표적으로 가우시안 분포 함수(정규 분포 함수)가 사용됨

-> 데이터를 바탕으로 하는 밀도 추정으로 데이터마다 커널을 생성한 히스토그램

  • : 커널 함수
  • : 확률 변숫값
  • : 관측값
  • : 대역폭(bandwidth)

 

Kernel 종류

참고: https://yenaworldblog.wordpress.com/2019/01/08/kernel-density-estimation-kde-%EC%9D%B4%ED%95%B4/

출처: https://yenaworldblog.wordpress.com/2019/01/08/kernel-density-estimation-kde-%EC%9D%B4%ED%95%B4/

 

Mean Shift 과정

참고: https://brunch.co.kr/@mnc/10

  1. Sliding window의 size(kernel = 반지름(radius, r))를 정의하고, cluster의 centroid가 되는 data point를 랜덤하게 설정
  2. 정해진 크기의 window안에서, data의 분포가 높은 방향으로 center of data point를 이동시키며, cluster의 centroid도 함께 이동
  3. Sliding window가 중첩될 경우, data point가 많은 window를 유지
  4. Cluster의 이동/변화가 멈출 때까지 해당 작업을 반복

 

장점

K-means와 달리 초기 "K"값을 설정할 필요가 없다.

 

단점

Sliding window의 kernel=반지름(r) 사이즈를 선택해야 한다.


References

반응형