【问题标题】:Determining cluster membership in SOM (Self Organizing Map) for time series data确定时间序列数据的 SOM(自组织图)中的集群成员资格
【发布时间】:2013-10-08 08:39:49
【问题描述】:
我还在从事一个需要对时间序列数据进行聚类的项目。我正在使用在 MATLAB 中工作的 SOM 工具箱进行聚类,并遇到以下问题:
“我们如何确定哪些数据属于哪个集群?” SOM 从数据集中随机选择数据样本,并为每个数据样本找到 BMU。据我所知,数据样本标识符在 SOM 算法中不被视为数据的维度。如果是这种情况,那么我们如何跟踪样本?我不认为som_bmus 解决了这个问题。知道如何在不更改 SOM 工具箱中包含的任何功能的情况下做到这一点吗?
【问题讨论】:
标签:
cluster-analysis
matlab
self-organizing-maps
【解决方案1】:
我知道这是一个老话题,但可能对其他人仍然有用。
您的问题是关于确定什么应该是集群还是哪些数据属于哪个神经元?如果这是最后一次,我相信 GulshanS 已经正确回答了,但如果是关于如何确定什么是集群以及什么不是集群的问题,则仍然没有答案。您可以通过邻居连接来做到这一点,黑暗区域大多显示“墙”,这是集群的断线。
集群分析与 SOM 所做的不同。 SOM 确定连接并分配 BMU,最终成为具有神经元的预定网格。多个数据输入可以属于一个神经元。多个神经元可以属于一个簇,但这些不是 SOM 的输出。
【解决方案2】:
y=vec2ind(output)
将为您提供 MATLAB 生成的输出的索引号。通过此信息,您可以查看哪些输入数据属于哪个神经元#。
直接在你的脚本中使用上面的代码,剩下的就交给它了。