Агломеративная кластеризация в Matlab

У меня есть простой двухмерный набор данных, который я хочу сгруппировать агломеративным способом (не зная оптимального количества кластеров для использования). Единственный способ успешно сгруппировать данные - это присвоить функции значение maxclust.

Для простоты предположим, что это мой набор данных:

X=[ 1,1;
    1,2;
    2,2;
    2,1;
    5,4;
    5,5;
    6,5;
    6,4 ];

Естественно, я хотел бы, чтобы эти данные сформировали 2 кластера. Я понимаю, что если бы я знал это, я мог бы просто сказать:

T = clusterdata(X,'maxclust',2);

и чтобы найти, какие точки попадают в каждый кластер, я мог бы сказать:

cluster_1 = X(T==1, :);

и

cluster_2 = X(T==2, :);

, но не зная, что 2 кластера были бы оптимальными для этого набора данных, как кластеризовать эти данные?

Спасибо

7
задан Argalatyr 30 September 2012 в 21:18
поделиться