我正在寻找 Python 中使用的六边形自组织映射。
- 现成的模块,如果存在的话。
- 绘制六边形单元格的方法
- 使用六边形单元格作为数组或其他形式的算法
关于:自组织映射 (SOM) 或自组织特征映射 (SOFM) 是一种人工神经网络,它使用无监督学习进行训练,以产生低维(通常是二维)
回答:
我没有关于第一点的答案,但这里有一些关于第二点和第三点的提示。在你的上下文中,你不是在模拟一个物理的二维空间,而是一个具有六个相邻单元格的概念空间。这可以用排列成列的正方形单元格来模拟,奇数列在垂直方向上偏移正方形大小的一半。我尝试用 ASCII 图来表示:
___ ___ ___ | |___| |___| |___|___| |___| |___| || |___| |___| |___||___| |___| |___| || |___| |___| |___||___| |___| |___| | |___| |___| |___|
你可以很容易地看到每个正方形都有 6 个邻居(当然,边缘上的正方形除外)。这很容易被建模为正方形的二维数组,并且计算位置 (i, j) 处正方形坐标的规则非常简单,其中 i 是行,j 是列:
如果 j 是偶数:
(i+1, j), (i-1, j), (i, j-1), (i, j+1), (i-1, j-1), (i+1, j-1)
如果 j 是奇数:
(i+1, j), (i-1, j), (i, j-1), (i, j+1), (i+1, j-1), (i+1, j+1)
(前 4 项是相同的)