Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB:自组织地图(SOM)集群

我正在尝试根据身体部位之间的角度对一些图像进行聚类。

从每个图像中提取的特征是:

angle1 : torso - torso angle2 : torso - upper left arm .. angle10: torso - lower right foot 因此,输入数据是大小为1057x10的矩阵,其中1057表示图像数,而10表示身体部位与躯干的角度。同样,testSet是821x10矩阵。

我希望输入数据中的所有行都以88个簇为簇。然后,我将使用这些群集来查找TestData属于哪些群集?

在先前的工作中,我使用了非常简单的K-Means聚类 。我们只要求K-Means将数据聚类为88个聚类。并实现另一种方法,该方法计算测试数据中的每一行与每个群集的中心之间的距离,然后选择最小值。这是相应输入数据行的集群。

我有两个问题:
  1. 是否可以在MATLAB中使用SOM做到这一点? AFAIK SOM用于视觉集群。但是我需要知道每个群集的实际类,以便以后可以通过计算它属于哪个群集来标记测试数据。
  2. 您有更好的解决方案吗?
回答:
自组织映射(SOM)是一种被视为人工神经网络(ANN)的无监督变异的聚类方法。它使用竞争性学习技术来训练网络(节点相互竞争以显示对给定数据的最强激活)



您可以认为SOM好像是由相互连接的节点(正方形,六边形等)的网格组成,其中每个节点都是权重的N维矢量(尺寸大小与我们要聚类的数据点相同)。

这个想法很简单;给定一个向量作为输入到SOM,我们找到节点衣柜里 ,然后更新其权重和邻居节点的权重,因此他们的做法,即输入向量的(因此得名自组织)。对所有输入数据重复此过程。



通过节点如何组织自身并形成具有相似权重的一组节点来隐式定义形成的群集。他们可以很容易地在视觉上看到。



SOM在某种程度上类似于K-Means算法,但不同之处在于我们没有施加固定数量的集群,而是指定了网格中我们希望其适应数据的节点的数量和形状。

基本上,当您拥有训练有素的SOM并希望对新的测试输入向量进行分类时,只需将其分配到网格( 最佳匹配单元 BMU)上最近的(距离作为相似性度量)节点,然后将[属于该BMU节点的向量类别。



对于MATLAB,您可以找到许多实现SOM的工具箱:

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 20:20


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.