EM 알고리즘 구현 – 오류 수정본 –

저번에 구현한 EM 알고리즘에 오류가 있어서 수정해봤다. 각 클러스터 중심을 구할 때 k-means 와 비슷하게 아예 확률값이 큰 클러스터에 포인트를 할당해 해당 클러스터 파라메터 계산시에만 확률값을 사용했는데 이런식으로 하면 안되고 한 포인트가 가지는 각 클러스터의 확률값을 가지고 이를 기반으로 각 클러스터 파라메터 재계산을 해야한다. 사실 코딩할 때 애매모호 해서 예전에 들었던 k-means와 거의 비슷하다는 강의록을 […]

계속 읽기

EM 클러스터링 알고리즘 코드

정확한 코드는 이곳에서 제공하고 있습니다. —————————————————–얼마만의 코드 관련 포스팅인지 모르겠다. 휴우~~~  어제 boost/math 라이브러리에 확률관련 모듈이 있는걸 보다가 문득 생각이 들어 EM 클러스터링 알고리즘을 구현해 봤다. EM 알고리즘은 k-means알고리즘과 접근 방식이 100% 동일하나 단 확률과 통계 관련 지식이 조금 필요하다. 특히나 likelihood 관련 개념 이해는 구현을 위해 필수적이다. 이 알고리즘의 구동 과정은 아래와 같다. 1. […]

계속 읽기

k-means, EM 알고리즘… 그리고 알맞은 k개수

어제 번역을 하면서 오랜만에 duda의 pattern classification책을 펼쳐 봤다. 워낙에 이 바닥에서는 알아주는 책이지만 사실 이 책 통독은 하지 못했다. 하지만  필요한 부분을 찾아보는 용도로 주로 쓴다.  ^^; 어제는 EM 알고리즘을 오랜만에 살펴봤다. 내가 아는 EM 알고리즘은 기본적으로 미지의 분포 파라메터를 주어진 데이터를 가지고 예측을 하고 그 예측값을 다시 주어진 데이터를 기반으로 기대치를 최대화 시키는 […]

계속 읽기