我正在使用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)
答案 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