解释自组织映射

我一直在阅读关于自组织映射的内容,我认为我理解了算法,但有些东西仍然让我困惑。

如何解释训练后的网络?

然后,如何实际使用它来进行分类任务(一旦你用训练数据完成了聚类)?

我似乎找到的所有材料(印刷和数字)都集中在算法的训练上。我认为我可能错过了某些关键的东西。


回答:

SOM主要是一种降维算法,而不是分类工具。它们用于降维,就像PCA和类似的方法一样(一旦训练完成,你可以检查哪个神经元被你的输入激活,并使用这个神经元的位置作为值),唯一的实际区别是它们能够保留给定的输出表示拓扑结构。

因此,SOM实际产生的是从你的输入空间X到降维空间Y的映射(最常见的是二维网格,使Y成为二维空间)。要进行实际分类,你应该通过这个映射转换你的数据,并运行其他分类模型(如SVM、神经网络、决策树等)。

换句话说,SOM用于寻找数据的其他表示。这种表示对于人类进一步分析很容易(因为它主要是二维的,可以绘制图表),对于任何进一步的分类模型也非常容易。这是可视化高维数据、分析“发生了什么”、某些类别如何几何分组等的绝佳方法。但它们不应与其他神经模型(如人工神经网络甚至是生长神经气体(这是一个非常相似的概念,但直接提供数据聚类))混淆,因为它们的用途不同。

当然,人们可以直接使用SOM进行分类,但这是对原始想法的修改,需要其他数据表示,一般来说,它的效果不如在其上使用其他分类器那么好。

编辑

至少有几种方法可以可视化训练后的SOM

  • 可以将SOM的神经元渲染为输入空间中的点,并用边连接拓扑上接近的神经元(这只有在输入空间的维数较少,如2-3维时才可能)
  • SOM的拓扑结构上显示数据类别 – 如果你的数据标有某些数字{1,..k},我们可以将k种颜色绑定到它们上,对于二元情况,让我们考虑蓝色红色。接下来,对于每个数据点,我们计算它在SOM中对应的神经元,并将此标签的颜色添加到神经元中。一旦所有数据都被处理,我们绘制SOM的神经元,每个神经元都以其在拓扑中的原始位置显示,颜色是分配给它的颜色的某种聚合(例如平均值)。如果我们使用像二维网格这样的简单拓扑结构,这种方法会给我们一个很好的低维数据表示。在下面的图像中,从第三个子图像到最后的子图像是这种可视化的结果,其中红色表示标签1(“是”答案),蓝色表示标签2`(“否”答案)
  • 还可以通过计算每个连接的神经元之间的距离,并在SOM的地图上绘制它,来可视化神经元之间的距离(上述可视化的第二个子图像)
  • 可以使用某种聚类算法(如K-means)对神经元的位置进行聚类,并将聚类ID可视化为颜色(第一个子图像)

source:wikipedia

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注