У меня есть кластер kmeans, в котором он должен делить данные на 2 кластера.этот процесс продолжается в цикле, пока не достигнет состояния.Итак, в конце я могу получить 20 кластеров.Я делаю это, потому что я не хочу назначать определенное количество кластеров.Так что это должно продолжать делиться на 2.
Я хотел знать, как это сделать в Matlab?Я использую цикл, но проблема в том, что после объединения данных мне нужно изменить номер кластера.Есть ли какая-либо функция, которая делает это сама, вместо того, чтобы назначать новый номер кластера?
следующий пример может быть одним из подходов.Там могут быть другие подходы.все в порядке, пока он дает результат комбинации кластеров. например: * первый цикл: 1 2 2 1 2 1 1
второй цикл: (потребуется первый кластер и кластерэто в 2 набора, а затем он объединит его с предыдущими результатами)
[1 1 1 1] после кластера в 2 набора => [1 1 2 1] => объединить с предыдущим циклом [1 1 31] (выберите 3, потому что у нас уже есть кластер 2)
снова потребуется первый кластер (из подкластера):
[1 1 1] после кластера => [1 1 2] => объединить с предыдущим циклом [1 1 3 4] Вот пример:
Мой код:
[IDX,C,SUMD] = SpectralClustering(G, k); % k is two
.
.
.
if Wav > w % Wav is average weight of cluster
Gi = subgraph(G, IDX==1); % IDX is cluster number
Ctemp = union(Ctemp, SpectralClustering(Gi, k)); % k is 2
else
Ctemp = union(Ctemp, IDX);
end
C = Ctemp;