我在MATLAB中编写了一个简单的SOM算法。我面临的最大挑战是,如何以U-Matrix,Sample Hits和Component / Input Planes的格式可视化/绘制数据?这三个图存在于MATLAB的SOM工具箱中。但问题是我不能让他们通过我的书面代码可视化我的数据。因为他们需要一个网络'作为输入,我的代码不会使任何' net'。
有没有指导?
答案 0 :(得分:1)
您可以创建自己的功能,因为它们不太复杂。我将假设SOM为20x20x10(400个节点,4个功能)进行解释。
Hit-Map只是将每个样本提供给已学习的SOM,并将+1递增到被选为最佳匹配单元(BMU)的节点。然后你绘制这张地图。因此,如果node(1,1)触发10次,而节点(1,2)触发100次,那么你将得到一个图像,其中node(1,2)的强度高于node(1,1)。
U-Matrix是一个地图,表示节点的权重向量与其最近邻居之间的平均距离。所以在这里你可以计算出节点X的特征向量与每个邻居之间的欧几里德距离。所以如果你有一个节点(1,1,:)= [1,1,2,3],节点(1,2,:)= [2,2,1,1]和节点(2)的特征向量,1,:) = [1,1,1,1],那么节点(1,1)的U矩阵的值可以是U(1,1)= norm(squeeze(节点(1,1), :) - 节点(1,2,:)))+范数(挤压(节点(1,1,:) - 节点(2,1,:)))= 4.8818
组件/输入平面是最简单的,不需要任何处理。您只需选择SOM地图和绘图的每个功能。因此,在我们的20x20x4 SOM示例中,您将拥有4个功能,因此有4个组件,您可以通过imagesc(节点(:,:,1)绘制特征1