评价自组织映射的分类性能



我正在尝试使用自组织映射(SOM)作为Iris数据集的聚类方法。

% Load dataset
load iris.dat
X = iris(:,1:end-1);
true_labels = iris(:,end);
% Train SOM
net = newsom(X',[10,10],'hextop','linkdist');
net.trainParam.epochs = 100;
net = train(net,X');
% Assign examples to clusters
outputs = sim(net,X');
[~,assignment]  =  max(outputs);

我如何评估这个SOM的性能?我试图计算调整后的兰德指数(ARI)之间的true_labels和分配,但我不知道这是否有任何意义。对于大型网格,ARI似乎收敛于0。

SOM不是真正的聚类算法,它是一种表示学习方法。一旦你训练了你的SOM,你现在可以将你的数据投射到最近的神经元上,并使用它们的位置作为新的表示,在那里你运行你最喜欢的聚类算法。SOM的唯一方法是聚类方法。如果你运行的网格大小等于集群的数量。所以对于Iris,你有3个类,你需要一个只有3个节点的网络。可能是一个三角形的图形。

最新更新