gpt4 book ai didi

python - Python 中的六角自组织映射

转载 作者:太空狗 更新时间:2023-10-29 21:27:38 25 4
gpt4 key购买 nike

我正在寻找六边形 self-organizing map在 Python 上。

hexagonal tiling

  1. 准备模块。如果存在的话。
  2. 绘制六边形单元格的方法
  3. 将六角形单元格用作数组或其他的算法

关于:自组织图 (SOM) 或自组织特征图 (SOFM) 是一种人工神经网络,使用无监督学习进行训练以生成低维(通常是二维)

最佳答案

我知道这个讨论已经有 4 年了,但是我还没有在网上找到满意的答案。

如果你有一个数组,将输入映射到神经元,以及一个与每个神经元的位置相关的二维数组。

例如考虑这样的事情:

hits = array([1, 24, 14, 16,  6, 11,  8, 23, 15, 16, 15,  9, 20,  1,  3, 29,  4,
32, 22, 7, 26, 26, 35, 23, 7, 6, 11, 9, 18, 17, 22, 19, 34, 1,
36, 3, 31, 10, 22, 11, 21, 18, 29, 3, 6, 32, 15, 30, 27],
dtype=int32)
centers = array([[ 1.5 , 0.8660254 ],
[ 2.5 , 0.8660254 ],
[ 3.5 , 0.8660254 ],
[ 4.5 , 0.8660254 ],
[ 5.5 , 0.8660254 ],
[ 6.5 , 0.8660254 ],
[ 1. , 1.73205081],
[ 2. , 1.73205081],
[ 3. , 1.73205081],
[ 4. , 1.73205081],
[ 5. , 1.73205081],
[ 6. , 1.73205081],
[ 1.5 , 2.59807621],
[ 2.5 , 2.59807621],
[ 3.5 , 2.59807621],
[ 4.5 , 2.59807621],
[ 5.5 , 2.59807621],
[ 6.5 , 2.59807621],
[ 1. , 3.46410162],
[ 2. , 3.46410162],
[ 3. , 3.46410162],
[ 4. , 3.46410162],
[ 5. , 3.46410162],
[ 6. , 3.46410162],
[ 1.5 , 4.33012702],
[ 2.5 , 4.33012702],
[ 3.5 , 4.33012702],
[ 4.5 , 4.33012702],
[ 5.5 , 4.33012702],
[ 6.5 , 4.33012702],
[ 1. , 5.19615242],
[ 2. , 5.19615242],
[ 3. , 5.19615242],
[ 4. , 5.19615242],
[ 5. , 5.19615242],
[ 6. , 5.19615242]])

所以我将使用以下方法执行此操作:

from matplotlib import collections, transforms
from matplotlib.colors import colorConverter
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

def plot_map(hits, n_centers, w=10):
"""
Plot Map
"""

fig = plt.figure(figsize=(w, .7 * w))
ax = fig.add_subplot(111)
hits_count = np.histogram(hits, bins=n_centers.shape[0])[0]
# Discover difference between centers
collection = RegularPolyCollection(
numsides=6, # a hexagon
rotation=0, sizes=( (6.6*w)**2 ,),
edgecolors = (0, 0, 0, 1),
array= hits_count,
cmap = cm.winter,
offsets = n_centers,
transOffset = ax.transData,
)
ax.axis('off')
ax.add_collection(collection, autolim=True)
ax.autoscale_view()
fig.colorbar(collection)
return ax

_ = plot_map(som_classif, matrix)

最后我得到了这个输出:

enter image description here

编辑

此代码在 https://stackoverflow.com/a/23811383/575734 上的更新版本

关于python - Python 中的六角自组织映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com