Python 中的六边形自组织映射
我正在Python上寻找六角形 自组织映射 .
- 准备好模块。如果存在的话。
- 绘制六角形单元
- 算法的方法,以将六角形单元用作数组或其他
关于: 自组织映射 (SOM) 或自组织特征映射 (SOFM) 是一种人工神经网络,使用无监督学习进行训练以产生低维(通常是二维)
I am looking for hexagonal self-organizing map on Python.
- ready module. If one exists.
- way to plot hexagonal cell
- algorithms to work with hexagonal cells as array or smth else
About:
A self-organizing map (SOM) or self-organizing feature map (SOFM) is a type of artificial neural network that is trained using unsupervised learning to produce a low-dimensional (typically two-dimensional)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道这个讨论已经有 4 年了,但是我还没有在网上找到令人满意的答案。
如果您有一个将输入映射到神经元的数组和一个与每个神经元的位置相关的二维数组。
例如,考虑这样的事情:
所以我使用以下方法执行此操作:
最后我得到了这个输出:
编辑
此代码的更新版本位于 https://stackoverflow.com/a/23811383/575734
I know this discussion is 4 years old, however I haven't find a satisfactory answer over the web.
If you have something as a array mapping the input to the neuron and a 2-d array related to the location for each neuron.
For example consider something like this:
So I'do this using a the following method:
Finally I got this output:
EDIT
An updated version of this code on https://stackoverflow.com/a/23811383/575734
我没有第 1 点的答案,但有第 2 点和第 3 点的一些提示。在您的上下文中,您不是在建模物理 2D 空间,而是在建模具有 6 个邻居的图块的概念空间。这可以用按列排列的方形图块进行建模,其中奇数列垂直移动正方形大小的一半。我将尝试一个 ASCII 图:
您可以轻松地看到每个方块有 6 个邻居(当然除了边缘的方块)。这可以很容易地建模为一个 2D 正方形数组,并且计算位置 (i, j) 处的正方形坐标的规则非常简单,i 是行,j 是列:
如果 j 是偶数:
如果 j 是奇数:(
前 4 个项相同)
I don't have an answer for point 1, but some hints for point 2 and 3. In your context, you're not modelling a physical 2D space but a conceptual space with tiles that have 6 neighbors. This can be modelled with square tiles arranged in columns with the odd colums shifted vertically by half the size of a square. I'll try an ASCII diagram:
You can see easily that each square has 6 neighbors (except the ones on the edges of course). This gets easily modeled as a 2D array of squares, and the rules to compute the coordinates of the square at at position (i, j), i being the row and j the column are quite simple:
if j is even:
if j is odd:
(the 4 first terms are identical)