【发布时间】:2016-12-24 22:18:42
【问题描述】:
我正在开发用于 kmean 聚类的 Matlab 项目
当我工作时,我发现很难理解 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)
【问题讨论】:
-
聚类问题没有“正确答案”。您可以收到不同的结果,选择正确的结果是您的任务
-
@AVK 除了使用 MaxIter 之外还有其他方法可以告诉它在没有变化时停止迭代吗?