0

我在 MATLAB 中编写了一个简单的 SOM 算法。我最大的挑战是,如何以 U-Matrix、Sample Hits 和 Component/Input Planes 的格式可视化/绘制数据?这三个图存在于 MATLAB 的 SOM 工具箱中。但问题是我不能调用他们来通过我的书面代码来可视化我的数据。因为他们需要一个“网络”作为输入,我的代码不会生成任何“网络”。

有什么指导吗?

4

1 回答 1

1

您可以创建自己的函数,因为它们不太复杂。我将假设 SOM 为 20x20x10(400 个节点,4 个特征)以进行解释。

Hit-Map 只不过是将每个样本提供给已经学习的 SOM,并将 +1 增加到被选为最佳匹配单元 (BMU) 的节点。然后你绘制这张地图。因此,如果 node(1,1) 触发 10 次,而 node(1,2) 触发 100 次,那么您将得到一个图像,其中 node(1,2) 的强度高于 node(1,1)。

U-Matrix 是表示节点的权重向量与其最近邻居之间的平均距离的映射。所以在这里你可以计算节点 X 的特征向量到每个邻居的欧几里得距离。因此,如果您有 node(1,1,:)=[1,1,2,3]、node(1,2,:)=[2,2,1,1] 和 node(2 ,1,:)=[1,1,1,1],那么 node(1,1) 的 U 矩阵的值可以是 U(1,1)=norm(squeeze(node(1,1, :)-node(1,2,:)))+norm(挤压(node(1,1,:)-node(2,1,:)))=4.8818

组件/输入平面是最简单的,不需要任何处理。您只需选择 SOM 地图的每个特征并进行绘图。因此,在我们的 20x20x4 SOM 示例中,您将有 4 个特征,因此有 4 个组件,您可以通过 imagesc(node(:,:,1)) 为特征 1 绘制它们

于 2014-11-14T10:07:25.783 回答