如何确定需要在k均值聚类中迭代多少次

时间:2016-08-18 05:21:43

标签: matlab iteration k-means

我正在使用matlab项目进行kmean聚类 在我工作的过程中,我发现很难理解MaxIter和Replicates之间的差异
在我的档案中,我有100个土地面积 当我运行我的项目三次时,每次在每个绘图中得到差异图,质心和数据点位置发生变化。
例如
首次运行>质心位置是x 5,y 3
第二轮>质心位置是x 3,y 2
第三次运行>质心位置是x 2,y 6
第四轮>质心位置是x 5,y 3
第五次运行>质心位置是x 3,y 2
并且相同的模式不断重复 所以我想知道如果从第一次运行或第三次运行中获取答案/图表,这是否正常? 从我的代码中可以看出,我将数据迭代3000次,这只是随机数。但是现在我不确定这是否正确,因为我得到的问题是在项目的前三次运行中的不同情节 如何确定需要在k均值聚类中迭代的次数

Array=csvread('data.csv');
  dataset = Array(:,[1:2]);


  optns = statset('MaxIter',3000);

   [idx,C] = kmeans(dataset,2,'Distance','cityblock',...
       'Options',optns);

  figure;
  plot(dataset(idx==1,1),dataset(idx==1,2),'r.','MarkerSize',20)

1 个答案:

答案 0 :(得分:0)

kmeans.m包含以下代码:

list1 = "'" + "','".join(list1) + "'"

如果没有变化,它会检查并停止。如果 % Determine which points moved moved = find(nidx ~= previdx); % Some code here ..... if isempty(moved) converged = true; break; end 为假(即达到MaxIter),则会显示警告消息:

converged