2014-11-23 85 views
2

过去几个月来我一直在研究自组织映射(SOM)。但我在理解维度缩减部分时仍存在一些困惑。您可以使用任何简单的方法来理解实际工作SOMs在任何真实世界的数据集上(如来自UCI存储库的数据集)。使用自组织映射缩减维度

回答

1

好吧,首先请参考以前的一些相关问题,这些问题可以让您更好地理解SOM的尺寸缩减和可视化属性。 Plotting the Kohonen map - Understanding the visualization, Interpreting 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)

OUTPUT:

所以在第一张图,你已经可以看到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

+0

谢谢你的简单和详细explanation.Even虽然我在Python工作,我可以更好地理解这个概念。但是我对最后两个数字有点困惑。 – Pooja 2014-11-24 17:42:35

+0

@Pooja看看我的编辑是否更容易理解 – ASantosRibeiro 2014-11-24 19:40:20

+0

谢谢..这真的很有帮助。 – Pooja 2014-11-26 09:01:13