在python中,如何知道元素属于哪个自组织映射(SOM)集群?

2024-09-28 05:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用自组织映射(Self-organizationmaps,SOM)来执行一些聚类。我有一个15维的数据集,我用下面的代码创建了一个som:

size = 20
from minisom import MiniSom    
som = MiniSom(size, size, 15, sigma=0.3, learning_rate=0.9, random_seed=149)
som.train_random(data, 650000, verbose=True)

我用下一种方法绘制了som:

^{pr2}$

如果我有一个新的元素,我怎么知道它属于哪一个维度?在


Tags: 数据代码fromimportselfsize聚类random
2条回答

我觉得MiniSom有一个为此实现的功能:

som.winner(*input_data*)

返回它最近的节点。在

最佳匹配单位(BMU)

for t in itertools.count():
        i =  np.random.choice(range(len(data)))
        bmu = self.find_bmu(data[i])

Finding the Best Matching Unit

create n x n map with random node vector values

loop while s < StepsMax times

compute what a "close" node means, based on s

compute a learn rate, based on s

pick a random data item

determine the map node closest to data item (BMU)

for-each node close to the BMU

adjust node vector values towards data item

end-loop

SOM - BMU

相关问题 更多 >

    热门问题