使用自组织映射减少维度

时间:2014-11-23 06:20:36

标签: som dimensionality-reduction uci

过去几个月我一直在研究自组织地图(SOM)。但是我仍然对理解尺寸减少部分有一些困惑。你能建议任何简单的方法来理解SOM在任何现实世界中的真实工作数据集(如来自UCI存储库的数据集)。

1 个答案:

答案 0 :(得分:2)

好的,首先请参考一些以前的相关问题,这些问题可以让您更好地理解SOM的降维和可视化属性。 Plotting the Kohonen map - Understanding the visualizationInterpreting a Self Organizing Map

第二个测试SOM属性的简单案例:

  • 创建一个包含3个功能的简单数据集,其中有3个不同的数据集 集群;
  • 在此数据集上执行SOM并可视化。

我将使用MATLAB编程语言来举例说明如何做以及从学习过程中提取的内容。

CODE:

% create a dataset with 3 clusters and 3 features
x=[ones(1000,1)*0.5,zeros(1000,1),zeros(1000,1)]; 
x=[x;[zeros(1000,1),ones(1000,1)*0.5,zeros(1000,1)]]; 
x=[x;[zeros(1000,1),zeros(1000,1),ones(1000,1)*0.5]]; 
x=x+rand(3000,3)*0.2; 
x=x';

%define a 20x20 SOM through MATLAB "selforgmap" function, and train using the "train"
net = selforgmap([20 20]); 
[net,tr] = train(net,x);

%display the number of hits, neighbour distance, and plane maps     figure,plotsomplanes(net)
figure,plotsomnd(net) 

图中,plotsomhits(净,x)的

输出:

因此,在第一个图中,您已经可以看到将3000x3数据集压缩为20x20x3地图(减少了近10倍)。您还可以看到您的组件可以轻松地压缩为3个单独的类。

enter image description here 当您查看邻居距离并点击地图时(图2和图3),这一点就更加明显了:

在图2中,节点与其邻居(通过节点权重之间的欧几里德距离及其邻居权重计算得越多)越不同,这两个节点之间的颜色越深。因此,我们可以看到3个高度相关的节点区域。我们可以使用这个图像和阈值来获得3个不同的区域(3个簇),然后获得平均权重。

在图3中,显示了来自数据集的每个节点中标签的样本数量。可以看出,之前的3个区域呈现出稍微均匀的样本分布(考虑到3个簇具有相同数量的样本,这是有意义的),并且界面节点(划分3个区域的节点)不映射任何样本。我们再次使用此图像并对其进行阈值处理,例如获得3个不同的区域(3个聚类),然后获得平均权重。

因此,与此数据集和一些简单的后处理相结合,您可以将数据集从3000X3减少到3x3矩阵

enter image description here enter image description here