【问题标题】:voronoi diagram matlabvoronoi图matlab
【发布时间】:2012-07-17 17:42:15
【问题描述】:

我想知道如何在下面的 FCM 方法中显示/绘制 voronoi 图?还有一种方法可以让您从图中观察程序,因为它在 matlab 中放置和计算每个点?几乎就像一辆正在运行的拖车。

  [centers, U, objFun] = fcm(data, 6);
  plot(data(:,1), data(:,2),'o');
  maxU = max(U);
  index1 = find(U(1, :) == maxU);
  index2 = find(U(2, :) == maxU);
  line(data(index1,1),data(index1, 2),'linestyle','none',...
 'marker','*','color','g');
  line(data(index2,1),data(index2, 2),'linestyle','none',...
 'marker', '*','color','r');

【问题讨论】:

  • 如果不自己实现聚类和 voronoi 图,我不确定您将如何做到这一点。 voronoi 在内部使用 DelaunyTri 来计算边缘。查看 fcm 的代码,它在内部没有使用 DelaunyTri,因此使用 DelaunyTri 很难想出集群边缘。

标签: matlab cluster-analysis voronoi


【解决方案1】:

这对于 k-means 和 FCM 应该是一样的,顺便说一句。

要获得 Voronoi 图,您需要计算 Delaunay 三角剖分,然后将 Voronoi 图的一条边正交放置在每个 Delaunay 边的平均值上。

至少有 2D 和 3D 的 Delaunay 有效算法。这与计算凸包密切相关。另外,由于您没有很多集群中心,因此可扩展性并不难。

但是,您有一个大问题:您的数据是 6 维的。这意味着您的 Voronoi 单元的侧面实际上是 5 维的,它们不会轻易映射到合理的 2d 投影。

在您使用的 2D 投影中计算 Voronoi 图是不准确的。您可以尝试计算 6D 的 Voronoi 单元,并将 voronoi 单元的所有角映射到 2D,然后连接相邻的角。但这可能会产生一大堆线条,而且恕我直言,这并不是特别有用。

抱歉,据我所知,Voronoi 单元可视化对于理解 2D 中的 k-means 非常有用,如果您有一个良好的 3D 3D 可视化引擎。

不要误会我的意思:Voronoi 细胞正是 k-means 集群的样子。它们不是球体、斑点或星星。它们是 Voronoi 单元格:单元格恰好是分配给特定平均值的区域。

看看这张来自维基百科的图片:

黑线是分隔集群的边界(在二维数据集中是简单的一维线)。在顶部中心线的右侧有一个蓝色物体。它是蓝色的,因为它位于直线的右侧 - 它位于蓝色均值的 Voronoi 单元格中。

这是 k-means 的一个主要缺点:它没有 size 的概念,如 spatial extend 中的集群。它们只有一个中心,数据在两个相邻中心之间的正交超平面上分割。 对于这个特定的数据集,k-means *没有机会正确拆分数据!它没有收敛到“坏”的局部最小值,但正确的解决方案不能 可以被 k-means 找到,因为簇的大小不同(并且中间没有足够的间隙让 k-means 很幸运)。要正确地对这个数据集进行聚类,您实际上需要一个类似于 EM 的聚类大小概念或基于密度的方法。如果 k-means 能够检测到绿色簇大约是蓝色簇的两倍大,它可能会工作得更好(但无论如何它几乎已经是 EM)

【讨论】:

  • 感谢 Anony,我想我可能对 voronoi 图感到困惑。我看过一个教程here 并阅读了一篇关于堆栈的帖子,其中有人上传了他的 k-means 图,该图有 voronoi 线(每个图的标题为 voronoi 图)所以我不确定。阅读您所说的,我认为这不是我所追求的。 +1
  • Voronoi 细胞是 k-means 的 优秀 可视化。使用 k-means 时,需要意识到这是 k-means 找到的簇的真实形状。不幸的是,我们无法在超过 2d 的时间内很好地可视化它们。我将使用 Wikipedia 中的图像更新问题,该图像会在一分钟内显示这种关系。
  • 感谢您更新您的答案,非常有用。堆栈需要在编辑后实现多个赞成票! +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 2016-03-17
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多