chaoskcuf's lab

SEARCH RESAULT : 글 검색 결과 - 프로그래밍/자작 프로그램 (총 18개)

POST : 프로그래밍/자작 프로그램

K-means 보다 월등한 Isodata Clustering 알고리즘 구현




A Fast Implementation of the ISODATA Clustering Algorithm 페이지에
http://www.cs.umd.edu/~mount/projects/i ··· data.pdf 논문을 보고 구현한 것인데요.

쉽게 말해서 k-means를 기반으로한 클러스터링 알고리즘 입니다.
그러나 k-means 처럼 초기에 클러스터의 수 k를 파라미터로 입력 받아서 실행되는 것이 아니라
클러스터의 크기에 따라 분할(split)되고 병합(merge)되는 알고리즘입니다.

적절한 InitK 만을 파라미터로 주면 분할에 사용되는 클러스터 중심에서 각 축으로의 최대표준편차(Maximum standard deviation of point from their cluster center along each axis)를 따라서 분할되고, 병합될 최대 클러스터 쌍의 최대 수(Maximum number of cluster pairs that can be merged per iteration)에 따라 병합됩니다.

k-means의 최고의 단점은 클러스터링 시작시 초기화 되는 클러스터가
Random 값을 반영하고 그 값이 클러스터링 결과에 많은 영향을 준다는 것 인데요.
다시 말해서, 제일 처음 클러스터 중심으로 선택되어지는 값이 따라 클러스터링이 잘 되지 않을 수도 있다는 것 입니다.

ISODATA 클러스터링도 k-means를 기반으로한 알고리즘이기 때문에 초기 클러스터 중심 랜덤 선택이 클러스터링 결과에 영향을 주지만 알아서 분할되고 병합되는 과정을 거치면서 상대적으로 k-means 보다는 덜 영향을 받는 것 같아 보입니다. 또한, 초기 클러스터의 수 K를 예측하지 않아도 되는 장점이 있지요.

해당 알고리즘 소스는 조만간 정리를 해서 올려놓도록 하겠습니다.
2008/08/06 10:18 2008/08/06 10:18
top

posted at

2008/08/06 10:18


CONTENTS

chaoskcuf's lab
BLOG main image
WPF, Silverlight, C#, MFC 프로그래밍 팁, 자작 프로그램 개발
RSS 2.0Tattertools 믹시
최근 글 최근 댓글 최근 트랙백
카테고리
사이트 링크