问题标签 [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.

0 投票
0 回答
68 浏览

neural-network - 我可以标准化神经网络的训练数据子集吗?

假设我有一个包含 50 个向量的训练集。我将这个集合分成 5 个集合,每个集合有 10 个向量,然后我缩放每个子集中的向量并对子集进行归一化。然后我用每个子集中的每个向量训练我的 ANN。训练完成后,我将我的测试集分组为每个 10 个向量的子集,缩放每个子集中向量的特征并对每个子集进行归一化,然后将其输入神经网络以尝试对其进行分类。

这是正确的方法吗?缩放和标准化每个子集是否正确,每个子集都有自己的最小值、最大值、平均值和标准差?

0 投票
1 回答
50 浏览

machine-learning - 如何根据时间聚类坐标?

我有一个 7x6 网格,其中正在跟踪移动的对象。对象可以在网格内以任何速度(甚至可以停止)在任何方向上随机移动。

输入:对象每秒的坐标存储在 .csv 文件中(x 坐标、y 坐标、第 i 秒),其中 i=0 到 n(跟踪的 n 秒)。

请建议一种机器学习算法,该算法可以预测如下输出中提到的坐标簇的质心。

输出:对象停止的点的聚类质心(一个接一个(c1,c2,c3,...,c8),根据时间命名,如下图所示)。

聚类质心

0 投票
1 回答
749 浏览

r - SOM 函数中未使用的参数

这是我的第一篇文章,我是 R 的新手。我正在尝试训练自组织地图。我的数据是 2304 个实例的矩阵,每个实例有 7 个特征([2304x7])

按照示例代码(如 wines 的数据集)我没有问题,但是当我尝试用我的数据修改一些功能时,我有这个错误:

som 错误(datos,grid = som_grid,init = "random",alpha = c(1, 0.1),:未使用的参数(alphaType = "linear",neigh = "gaussian")

我只是在下面输入代码:

我究竟做错了什么?

非常感谢,很抱歉已经回答了(我没找到)!

0 投票
0 回答
155 浏览

r - 在自组织地图中检索获胜单位的信息

我想弄清楚在 kohonen 图中哪个是节点的获胜单位

情节将如下所示:

索姆图

而且您可能知道观测将位于哪个集群中

但我想在图中检索这个单位信息,比如在节点中放置一个带有这个单位编号的文本,方法与识别函数相同,但自动进行。提前致谢!

0 投票
1 回答
68 浏览

time-series - 为时间序列分类选择正确的参数

在我的研究中,我面临着数据源的巨大挑战。基本上我有六种类型的事件注册用于后期处理。该事件与过程中使用的一种离子以及该事件在设备上发生的位置有关。图 1 显示了每种偶数类型的平均曲线。

图 1

图 1 平均曲线

我的目标是对寻找这条曲线的离子类型进行分类,以研究曲线,我使用从每条曲线中提取的四个参数:peak value [max value]、和middle length[red line],如图 2 所示。Rising time[green]Base length [ blue]

图 2

提取的特征

我正在使用两种类型的算法来尝试对曲线进行分类K-meansLDA但是目前的结果还不清楚,我没有好的集群和分类器,我也运行了一个SOM算法并且得到了更好的结果,但不是非常令人满意。相信参数不好选。我如何才能很好地指示良好的参数?如何为我的分类器选择正确的参数?在这种情况下有什么好的做法可以使用?

0 投票
2 回答
1516 浏览

algorithm - 原理组件初始化如何确定自组织地图中地图向量的权重?

我研究了一个基本的 SOM 初始化,并希望准确了解这个过程,PCI,如何在地图上初始化权重向量。我的理解是,对于一个二维的Map,这个初始化方法是看特征向量的数据矩阵的两个最大特征值,然后使用这些特征向量跨越的子空间来初始化map。这是否意味着为了获得初始地图权重,该方法是否采用最大两个特征向量的随机线性组合来生成地图权重?有范式吗?

例如,对于地图上的 40 个输入数据向量,lininit 初始化方法是否采用组合 a1*[e1] + a2*[e2] 其中 [e1] 和 [e2] 是两个最大的特征向量,a1 和 a2 是随机整数从-3到3?还是有不同的机制?我希望确保我确切地知道 lininit 如何获取输入数据矩阵的两个最大特征向量并使用它们来构造地图的初始权重向量。

0 投票
1 回答
554 浏览

r - 访问 R 自组织地图码本向量

我正在努力使用 SOM 来帮助分析天气预报模型集合的可变性。为此,请访问特定地理区域的 20 个集合全球天气预报模型。我将 20 x Nlat x Nlon 矩阵转换为 20 x Nlat*Nlon 矩阵,并将其呈现给 Kohonen 包 som 函数。然后我寻求访问 som “码本向量”输出并将其转换回纬度经度网格。但是,我在这一步收到了一条错误消息。

我收到的错误消息是:“var.som$codes[i, ] 中的错误:维数不正确。” 在这种情况下,var.som 是 Kohonen 对象。我从 N = 1:Nsom 循环,其中 Nsom 是调用 som 函数时指定的“映射”数。

var.som 的属性数据表明列表 var.som$codes 的大小是“num [1:4, 1:500]”,暗示了两个维度,这就是我认为我的代码应该可以工作的原因。我尝试了不同的排列来访问列表数据,但没有一个工作。即 var.som$codes[1] 和 var.som$codes[[1]] 但它们不能解决问题。var.som$codes[1,1] 产生 NULL。

在下面的 R 脚本中,我已将过程简化为仅基本步骤。随机数生成器取代了对天气模型数据的访问。在代码中,我指出了错误发生的位置以及错误消息是什么。

感谢您提供有关如何一次访问 var.som$codes 一个码本向量的帮助和指导。

0 投票
3 回答
211 浏览

r - 将 SOMbrero 包中的集群和节点添加到训练数据中

我正在使用SOMbrero包。我想附上这样创建的簇号(取自此处):

以及 SOM 节点到训练数据集的 X 和 Y 坐标。

在一些使用 kohonen 包的代码中,我创建了这样的集群:

PS:

可以在此处找到一些使用 iris 数据集的示例代码。

PP:

我对上面引用的代码 iris 代码进行了一些尝试,并认为我已经设法提取了集群、节点 ID 和原型(参见下面的代码)。缺少的是坐标 X 和 Y。我认为它们在这里:

代码:

0 投票
1 回答
2207 浏览

python - 如何在 python 中可视化/绘制 SOM?

我想为我的集群结果创建一个映射(这种映射)。例如,这是我使用 SOM 生成的结果。

我的输入示例(基于 DNA 序列基序):

主题 1 = 0.19,0.95,0.01,0,0.76,0,1.04,0,0,0.05,0,1,0,0,1,0

主题 2 =0,0,0,0,0,0,1,0.3,0.05,0.15,0.7,0.6,0.05,1.15,0.2,0.8

主题 3 =0.9,0,0,1.1,0,0,0,0.45,0.035,0,0.015,0.15,1.665,0,0.335,1.35

主题 4 =1,0,0,1.16,0.036,0,0.0032,0.4,0.294,0,0.025,0.04,1.5888,0.04,0.371,1.04

输出(在 python 中使用 SOM 运行):用于训练输入的集群:主题 1 = 集群 1

主题 2 = 集群 2

主题 3 = 集群 1

主题 4 = 集群 1

节点1的权重:1.366,0.951,0.819,0.919,0.812,0.688,0.802,0.622,0.999,0.574,0.618,0.803,0.880,0.721,0.741,0.963 节点2的权重:1.366,0.9191,0.8120,0.819, ,0.688,0.802,0.622,0.999,0.574,0.618,0.803,0.880,0.721,0.741,0.963

0 投票
0 回答
148 浏览

python - 将二维数组中的值内插/外插为线

我正在尝试使用自组织图 (SOM) 和 U 矩阵将事物组合在一起,看起来像以下内容:

图 1:光曲线的自组织图 (SOM) 图 2:上述 SOM 的 U 矩阵图 3:上述 U 矩阵的局部最大值图 1:光变曲线的自组织图 (SOM) 图 2:上述 SOM 的 U 矩阵 图 3:上述 U 矩阵的局部最大值

图 3 是使用 绘制plt.imshow的,由 0 到 1 之间的值组成的二维数组来定义颜色。

我想对图 3 中的线进行插值和外推以连接起来,从而将图形分成 6 个区域。我对如何做到这一点有点坚持,想知道是否有人有任何想法?我不一定要寻找代码,我主要想知道如何开始。

对于任何对我在这里所做的背景感兴趣的人来说都是一些零碎的东西,但这对我的问题来说不是必需的。