tgu*_*clu 9 matlab cluster-analysis machine-learning som
我试图根据身体部位之间的角度聚集一些图像.
从每个图像中提取的特征是:
angle1 : torso - torso
angle2 : torso - upper left arm
..
angle10: torso - lower right foot
Run Code Online (Sandbox Code Playgroud)
因此,输入数据是大小为1057x10的矩阵,其中1057代表图像的数量,10代表具有躯干的身体部位的角度.类似地,testSet是821x10矩阵.
我希望输入数据中的所有行都使用88个簇进行聚类.然后我将使用这些集群来查找TestData落入哪些集群?
在之前的工作中,我使用了K-Means聚类,这非常简单.我们只要求K-Means将数据聚类为88个集群.并实现另一种计算测试数据中每一行与每个集群中心之间距离的方法,然后选择最小值.这是相应输入数据行的集群.
我有两个问题:
是否可以在MATLAB中使用SOM执行此操作?AFAIK SOM用于视觉聚类.但是我需要知道每个集群的实际类,以便稍后我可以通过计算它所属的集群来标记我的测试数据.
你有更好的解决方案吗?
Amr*_*mro 16
自组织映射(SOM)是一种聚类方法,被认为是人工神经网络(ANN)的无监督变异.它使用竞争性学习技术来训练网络(节点之间相互竞争,以显示对给定数据的最强激活)
您可以将SOM视为由互连节点网格(方形,六边形,...)组成,其中每个节点都是权重的N维向量(与我们想要聚类的数据点的维度大小相同).
这个想法很简单; 给定一个向量作为SOM的输入,我们找到它的节点壁橱,然后更新它的权重和相邻节点的权重,使它们接近输入向量的值(因此名称自组织).对所有输入数据重复该过程.
形成的簇由节点如何组织自身并形成具有相似权重的一组节点隐式定义.它们在视觉上很容易看到.
SOM的方式类似于K-Means算法,但不同之处在于我们没有强加固定数量的聚类,而是指定网格中我们希望它适应我们数据的节点的数量和形状.
基本上当你有一个训练有素的SOM,并且你想要对一个新的测试输入向量进行分类时,你只需将它分配给网格上最近的(作为相似性度量的距离)节点(最佳匹配单元 BMU),并作为预测给出[多数]属于该BMU节点的向量的类.
对于MATLAB,您可以找到许多实现SOM的工具箱:
归档时间: |
|
查看次数: |
14705 次 |
最近记录: |