현실감각 0% :: 현실감각 0%

컴퓨터 관련 2009. 8. 31. 21:23

isodata 클러스터링 알고리즘 완성



드디어 isodata 클러스터링 알고리즘 완성!!
솔찍히 제대로 만들었는지는 모르겠다. 뭐 프로젝트에 쓸 알고리즘으로는 이걸로도 충분할듯 하니...ㅋㅋㅋ



결과화면으로는  뭐 뭐가뭔지 잘 모르겠지만 대충 덩어리진것들만 봐선 대체적으로 잘 된듯하다.
일단 기본적으로 3차원 클러스터링용으로 만든것이며, 실험데이터는 16차원짜리 내가 쓰는 데이터를 받아 한거지만 뭐 대충 코드보면 언제든지 수정 가능할듯 싶고...
입력할 값들로는 K, tN, tS, tC, Kmin, Kmax가 있는데... 각각의 설명을 대충 하자면

K = 최초 클러스터 개수
tN = 클러스터가 이루어지기 위한 데이터의 최소개수
tS = 최소 분산 한계
tC = 클러스터 i와 클러스터 j간의 최소 거리
Kmin = 클러스터의 최소 개수
Kmax = 클러스터의 최대 개수

값을 대충 입력해서 돌릴경우 결과는 안드로, 시간은 지구종말의 순간까지 무한루프를 돌 수 있으니 루프가 돈다 싶으면 이러저러하게 바꿔가면서 넣으면 된다.

실험데이터는 말 그대로 16차원의 안드로 데이터를 사용했으므로... 소스를 그대로 이용하여 돌려보려면 대충

for i = 1:1000
for j = 1:16
temp(i,j) = rand;
end
end

이렇게 대충 데이터를 만든후에 입력하면 된다.


소스는 여기를 클릭!