【发布时间】:2016-02-06 04:49:28
【问题描述】:
我一直在使用 Matlab 的自组织地图工具箱,即 newsom 和相关的函数系列。我正在将 SOM 聚类应用于大量文档,并且我使用了 plotsomhits(net, features) 来可视化分配给每个神经元的模式/文档的数量。但是,我似乎在工具箱中找不到任何函数来检索数据结构中的这些命中,而不仅仅是将它们可视化。
现在我知道我可以自己找到命中,在一个简单的 for 循环中选择最大化每个模式的负距离度量的神经元:
nweights = net.IW{1}; % retrieve weights
mx = -Inf; winner = 1;
for i = 1:length(nweights)
distance = negdist(nweights(i, :), pattern);
if distance > mx % update index of winner
mx = distance;
winner = i;
end
end
但是,考虑到存在可视化此类结果的功能,SOM 工具箱中没有可用的功能对我来说似乎很奇怪。
有人知道吗? 另外,有没有比我上面描述的更快的方法来找到每个模式被“分配”到的神经元?
【问题讨论】:
-
所使用的各种变量的典型大小是多少?有任何最小的样本数据可以使用吗?
-
特征尺寸为 8296x1,我有一组 500 个文档(== 500 个特征)。 SOM 大小为 10x10。
-
@Divakar 谢谢,这些方法非常有趣。
标签: matlab neural-network som