问题标签 [som]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13524 浏览

cluster-analysis - 识别 SOM(自组织图)中的集群

在 SOM 中收集和组织数据后,如何识别集群?

(项目使用许多特征进行聚合和聚类 - 超过 10 个)

具体来说,我想找到集群的“中心” - 因此给我“中心”节点。

0 投票
2 回答
10942 浏览

machine-learning - 如何制作 U 矩阵?

为了可视化自组织图,U 矩阵究竟是如何构造的?更具体地说,假设我有一个 3x3 节点的输出网格(已经训练过),我如何从中构造一个 U 矩阵?例如,您可以假设神经元(和输入)的维度为 4。

我在网上找到了几个资源,但不是很清楚或者是相互矛盾的。例如,原始论文充满了错别字。

0 投票
2 回答
8416 浏览

machine-learning - Is it right to normalize data and/or weight vectors in a SOM?

So I am being stumped by something that (should) be simple:

I have written a SOM for a simple 'play' two-dimensional data set. Here is the data:

enter image description here

You can make out 3 clusters by yourself.

Now, there are two things that confuse me. The first is that the tutorial that I have, normalizes the data before the SOM gets to work on it. This means, it normalizes each data vector to have length 1. (Euclidean norm). If I do that, then the data looks like this:

enter image description here

(This is because all the data has been projected onto the unit circle).

So, my question(s) are as follows:

1) Is this correct? Projecting the data down onto the unit circle seems to be bad, because you can no longer make out 3 clusters... Is this a fact of life for SOMs? (ie, that they only work on the unit circle).

2) The second related question is that not only are the data normalized to have length 1, but so are the weight vectors of each output unit after every iteration. I understand that they do this so that the weight vectors dont 'blow up', but it seems wrong to me, since the whole point of the weight vectors is to retain distance information. If you normalize them, you lose the ability to 'cluster' properly. For example, how can the SOM possibly distinguish between the cluster on the lower left, from the cluster on the upper right, since they project down to the unit circle the same way?

I am very confused by this. Should data be normalized to unit length in SOMs? Should the weight vectors be normalized as well?

Thanks!

EDIT

Here is the data, saved as a .mat file for MATLAB. It is a simple 2 dimensional data set.

0 投票
2 回答
3440 浏览

matlab - 通过 SOM 进行聚类

我有 71 个属性和 17 个实例的数据。我想将它们分为六个组或类。我试过了newsom( data, [ 6 6 ] )

结果如下图所示。我无法弄清楚集群的位置以及如何以编程方式找到它们?


在此处输入图像描述 在此处输入图像描述

我阅读了所有关于 SOM 的论文,但始终无法弄清楚如何获取这些集群中的集群和数据?所以,在你回复我的问题时也请注明。

0 投票
2 回答
544 浏览

algorithm - 采样信号的相似度算法(数学)

假设我已经对一些信号进行了采样,并为每个信号构建了一个样本向量。计算这些向量的(不)相似度的最有效方法是什么?请注意,采样的偏移量不得计算在内,例如 sin 和 cos 信号的采样向量应该被认为是相似的,因为它们在顺序上是完全相同的。

有一种简单的方法是通过“滚动”另一个向量的单位,计算每个滚动点的欧几里得距离并最终选择最佳匹配(最小距离)。这个解决方案工作得很好,因为我唯一的目标是从向量池中找到输入信号最相似的样本向量。

但是,当向量的维数增长时,上述解决方案也非常低效。与 N 维向量的“非序列向量匹配”相比,序列向量的计算距离要多 N 倍。

是否有任何更高/更好的数学/算法来比较具有不同偏移量的两个序列?

用例是使用 SOM 进行序列相似性可视化。

编辑:比较每个向量的积分和熵怎么样?它们都是“序列安全的”(= 时不变的?)并且计算速度非常快,但我怀疑它们本身是否足以区分所有可能的信号。除了这些,还有其他东西可以使用吗?

EDIT2: Victor Zamanian 的回复不是直接的答案,但它给了我一个可能的想法。解决方案可能是通过计算它们的傅里叶变换系数并将它们插入到样本向量中来对原始信号进行采样。第一个元素 (X_0) 是信号的平均值或“水平”,随后的 (X_n) 可直接用于比较与其他样本向量的相似性。n 越小,它对相似性计算的影响就越大,因为用 FT 计算的系数越多,FT 信号的表示就越准确。这带来了一个额外的问题:

假设我们有 FT-6 采样向量(值刚刚从天而降)

  • X = {4, 15, 10, 8, 11, 7}
  • Y = {4, 16, 9, 15, 62, 7}

这些向量的相似度值可以这样计算:|16-15| + (|10 - 9| / 2 ) + (|8 - 15| / 3 ) + (|11-62| / 4 ) + (|7-7| / 5 )

那些加粗的是奖金问题。是否有一些系数/其他方式可以知道每个 FT 系数对与其他系数的相似性有多大影响?

0 投票
0 回答
285 浏览

linux - 微控制器、触摸屏 QVGA 和 Web 客户端?

我已经在一个小小的 ATmega 上工作了一年,并且有一个非常好的 GUI 和事件系统。除了,完成无线驱动后,我想知道,还有其他方法吗?

我想知道是否有人遇到过任何具有 GPIO、uC、QVGA 显示器和触摸屏的设备,但重要的是 - 可以支持 Web 客户端。这个想法是,我可以有一个小型嵌入式 Web 服务器,为自己提供一个显示在 QVGA 屏幕上的网页。外部客户端可以通过无线连接,并查看同一屏幕。

我在嵌入式应用程序中看到了很多 Web 服务器,但没有看到 Web 客户端。因此,我使用了一个小型 Linux 嵌入式设备,并尝试将一些 Web 客户端和驱动程序加载到 QVGA/触摸屏。我也看到了这些;http://www.netmf.com/gadgeteer/get-started.aspx - 使用 .NET 的“模块系统”设备。不确定您是否可以轻松地将网络客户端放在上面。

我能得到一些方向吗?

0 投票
2 回答
757 浏览

cluster-analysis - SOM 的适当邻域大小

我正在做一个程序,可以使用 Kohonen 自组织地图对数字数据进行聚类,并且我正在尝试使其尽可能通用。那么,我如何知道与数据集中的项目数(输出节点数)成比例的邻域的适当初始大小?

建议也将不胜感激。:)

0 投票
1 回答
157 浏览

k-means - 自组织地图“错误”

正如我们从 K-Means 中知道的,在样本数据聚集在 N 个集群中(每个集群都有一个质心向量)之后,并非所有数据都聚集在它们所属的集群中!我的意思是某些数据向量可能聚集在错误的簇中。这意味着即使在 K-Means 中,聚类时也没有 100% 的精度。我想知道这样的“错误”是否也出现在 SOM 算法中。那么……在 SOM 算法收敛后,是否有任何不属于它们实际放置的节点的数据样本?

我希望我的问题足够清楚。我期待你的答案。

0 投票
1 回答
3471 浏览

artificial-intelligence - SOM(自组织地图)和 K-Means 有什么区别?

stackoverflow中只有一个与此相关的问题,更多的是关于哪个更好。我只是不明白其中的区别。我的意思是它们都使用随机分配给集群的向量,它们都使用不同集群的质心以确定获胜的输出节点。我的意思是,区别到底在哪里?

0 投票
1 回答
556 浏览

matlab - 如何将二进制图像数据发送到自组织地图

我已经拍摄了带有字符的扫描图像,裁剪了字符并将它们存储在矩阵中。

在这里,box 有矩形的坐标。我想使用 Y 作为输入来newsom创建自组织地图。但我得到错误:

净=newsom(Y', [10,1])
??? 错误使用 ==> cat
CAT 参数尺寸不一致。

==> cell2mat 在 89
m{n} = cat(1,c{:,n}) 处出错;


如果 isa(p,'cell'), p = cell2mat(p); 则==> newsom>new_6p0 在 72 处出错;结尾

==> newsom 在 58 处出现错误
net = new_6p0(varargin{:});

形成的图像具有不同的尺寸(12x6、15x12 等)。谁能告诉我如何纠正我的方法以newsom获得 50 个二进制图像的数据?