问题标签 [self-organizing-maps]
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.
matlab - 关于使用 Simulink 训练自组织图 (SOM) 中数据点移动的可视化
我已经在 MATLAB 中实现了自组织映射(SOM)算法。假设每个数据点都表示在二维空间中。问题是我想在训练阶段可视化每个数据点的移动,即我想看看这些点如何移动并最终形成集群,因为算法正在进行中,比如在每个固定持续时间。我相信这可以通过 MATLAB 中的模拟来完成,但我不知道如何将我的 MATLAB 代码合并到可视化中?
cluster-analysis - 确定时间序列数据的 SOM(自组织图)中的集群成员资格
我也在做一个需要对时间序列数据进行聚类的项目。我正在使用在 MATLAB 中工作的 SOM 工具箱进行聚类,并遇到以下问题:“我们如何确定哪些数据属于哪个集群?” SOM 从数据集中随机选择数据样本,并为每个数据样本找到 BMU。据我所知,数据样本标识符在 SOM 算法中不被视为数据的维度。如果是这样,那么我们如何跟踪样本?我认为这不能解决som_bmus
这个问题。知道如何在不更改 SOM 工具箱中包含的任何功能的情况下做到这一点吗?
machine-learning - Kohonen 自组织图:确定神经元数量和网格大小
我有一个大型数据集,我正在尝试使用 SOM 进行聚类分析。数据集是巨大的(约数十亿条记录),我不确定神经元的数量和 SOM 网格大小应该从什么开始。任何关于估计神经元数量和网格大小的材料的指针将不胜感激。
谢谢!
machine-learning - 矩形地图的 U 矩阵
我在很多地方都读过关于 U-Matrix 的文章,包括这个网站。U-Matrix 的最佳解释可在此站点中找到,其中解释了为什么关于如何正确计算 U-Matrix 的正确信息如此之少(原始论文根本没有用)。
上述问题的答案完全解释了六边形地图的概念。但是当地图是矩形时,链接问题的答案中计算 U 矩阵的逻辑不成立。
例如,考虑如下所示的 3 x 3 矩形晶格。
使用上面的格子,我可以计算 U 矩阵,如下所示。
黄色方块是蓝色方块之间的距离。我确定黄色方块。我也确定蓝色方块,因为我们只需要取其周围的平均值或中位数。
所以我的问题是:如何计算红色方块?
我找到了一些来源,包括我上面引用的上一个问题中提到的来源。我对矩形 U 矩阵的最佳解释如下
说明 1 -> 在本文中,作者并未完全解释如何计算红色方块。只是解释需要取周围的平均值。这不清楚,我认为不合适(见下文)
描述 2 -> 在这篇论文中,作者已经清楚地说明了如何计算红色方块,但他们提出的逻辑似乎有缺陷。
我的解释为什么上述可能不正确
如果像描述 1 中提到的那样取其周围的平均值来计算红色方块,那么蓝色方块的计算将直接受到影响。例如,考虑计算 U-Matrix 中蓝色方形数字 1 的值。如果我们要取其周围的平均值,我们需要距离 (1,2) 、 (1,4) 和 (1,5)。如果我们用 (1,5) 填充相应的红色方块,则蓝色方块 4 的计算是错误的,因为我们没有计算 (2,4) 并且应该在同一个红色方块中放置它。因此,将 (1,5) 和 (2,4) 相加除以 2*(1.414...) 的等式将不起作用,因为存在不属于平均值的分量。在蓝色方块 1 的情况下,(2,4) 的距离部分不属于那里。
我使用第二篇论文中的描述进行编程,为简单数据集生成的 U-Matrix 并不令人满意。虽然对于下面给出的相同数据集,给定节点周围的平均距离比 U-Matrix 表现更好。(图像是 U-Matrix 后跟平均值)
python - 在 python 中可视化自组织地图
是否有任何 python 包可以处理可视化和动画无监督学习网络,例如自组织地图 (SOM)?希望matplotlib是否有代码。
machine-learning - 混合类型数据的增长自组织图
我正在尝试编写代码来为混合类型数据构建一个不断增长的 SOM。我遇到了一篇论文《Growing Self-Organizing Map with cross insert for mixed-type data》(http://www.sciencedirect.com/science/article/pii/S1568494612001731)。它非常有趣,并以统一的方式处理分类数据和数字数据。但是,我的数据集具有可以具有多个值的变量/属性(例如:属性“兴趣”可以具有多个值 - 电影、体育等等......)。我被困在处理这些属性上。任何输入如何处理具有混合类型数据集中值集的属性?对讨论这个问题的材料的参考将不胜感激。
r - R:自组织图:高斯邻域函数和非线性学习率
我一直在研究 SOM 以及如何获得最佳聚类结果。一种方法是尝试多次运行并选择误差平方和最小的聚类。
但是,我不仅要初始化随机值并尝试多次,还要选择好的参数。我在“Influence of Learning Rates and Neighboring Functions on Self-Organizing Maps”(Stefanovic 2011)中读到,如果您不知道要为邻域函数和学习率选择哪些参数,那么选择高斯可能是最佳选择函数和非线性学习率。
我的数据是一个时间序列,可以说:
其中有 300 个观测值,每个观测值有 50 个值。100 个观察值往往更相似。
我正在使用 kohonen 包。
编码:
给我值在 10 到 22 之间的集群,这类似于 obersations
我也尝试了“som”包,它提供了高斯邻域函数和反时学习率。
在这里,我得到值在 15 和 18 之间的集群,因此所有集群都“缩小”并变得更加相似。使用不同的输入系列,我得到相同的现象
我的两个问题:
1) 为什么使用 som 包的自组织地图中的集群会变得如此相似并缩小到更小的范围,即使据说你得到了具有高斯邻域函数和非线性学习率的良好集群?
2)如何避免使用高斯邻域函数和非线性学习率缩小范围以获得适当的集群?
python - while 循环中的变量不会改变
我正在用 python 做一个自组织地图,就像在本教程中一样。它部分有效,但是我在我的一个 while 循环中遇到了一个奇怪的问题。这是问题部分的代码:
radius
在每个像素迭代中最初设置为 15,其想法是根据半径设置 r,g,b 值,减少它并设置新的 r,g,b 值等等。请注意,计算半径与算法中的不同radius = radius - 1
,但我想用一些简单的东西来测试它。
我的问题是,在第一个和第三个中,print(radius)
我得到预期值 15,14,13,12... 等等。但在中间,我总是得到 15,这是初始值。我不明白为什么radius
在那一点上没有变化,而在其他点上却发生了变化。任何帮助,将不胜感激。
artificial-intelligence - 了解 AForge SOM 实现
你好神经爱好者,我对 AForge 中的 SOM 学习算法有点困惑。我发现该实现假定了最常见的情况,即二维 SOM。
当我查看网络上的其他 SOM 图形时,发现神经元的位置会随着时间而变化。相似的神经元被放在一起。
我看了一下源代码,发现地图中神经元的位置是某种固定的。这是:
这只是另一种具有固定位置的 SOM,还是我误解了什么?我还认为您主要想从 SOM 中获取信息图形,但没有公开可用的方法来检索神经元的位置。
neural-network - 使用自组织图计算数据中的簇数
我大致了解 SOM,它正在将其网络映射到不同的训练数据集群。如何实现使用 SOM 计算集群数量?我在这里使用 KNNL 库来实现 SOM。在它的演示中,它只展示了如何训练和测试。我怎样才能实现它来计算集群的数量?我知道我也可以使用 DBSCAN 进行集群计数。但首先,我喜欢为集群计数实现 SOM。我的输入数据是 2D 数据,表示 2D 空间中的点,例如