我有以下热图的示例图像(我现在有数百个这样的images...for,以后会增长):




用我的人眼,我会说heatmap1,3和4是相似的,或者3和4是最相似的,我不确定。
我希望能够根据模式和强度将最相似的热图图划分成不同的组。
例如,中的每个heatmap包含24行和5列(行表示时间,列表示功能)。每列中的每一种颜色代表一个介于0到1之间的数字。与其他热图相比,第1列中用于heatmap 3和4的模式和强度更相似。但是,我不想看每一列,而是要比较每个热图的总体模式和强度。
我以为我要用kmeans集群,但是找不到任何能帮助我实现我想要的东西的信息。据我所知,我的搜索结果是层次分明的聚类,这对我没有任何帮助。
然后,我发现了一些关于图像哈希的信息。读一读,它似乎可以帮助我解决我的问题。
在我进一步阅读和学习之前,我有几个问题/困惑要解决,这样我就可以更好地学习和阅读解决这个问题的方法。
我的问题/困惑:
任何其他方法都是受欢迎的。
发布于 2017-05-12 20:29:58
在对任何数据执行聚类之前,您应该清楚地知道什么是您的相似性度量。换句话说,是什么使两个热图相似?另外,你应该问问自己,是什么使热图很不一样。您可能还想向自己澄清集群对您的情况意味着什么。回答这些问题后,您可以选择适当的度量和聚类方法。(人们通常不会经历这个过程,要么是因为他们不知道足够的聚类方法,要么是因为他们懒惰。或者,有时他们只是不想对他们得到什么样的结果做出任何假设。然后他们要做的是尝试一些在编程语言中有实现的集群方法,希望这些方法能够满足他们的需求)
在选择聚类方法之前,下面列出了一些您可能想问自己的问题:
回答这些问题会帮助你,例如,回答以下问题:
(选择聚类方法也取决于它的复杂性、它在大量数据上的性能、它是否可以并行、它是否能给出分层聚类,取决于它的结果是否允许对新的热图进行简单的分类,等等)
发布于 2017-05-12 19:36:25
您可以将此问题视为24x5= 120维(或特性)中的数据点的群集问题。确保以相同的方式扁平每个数据点(row1row2row3.级联或col1col2col3..。连接,只需选择一个并保持一致)。您可以为每个数据点获取这120个特性,并使用K均值或任何分层集群方法或任何其他聚类方法对它们进行聚类(例如,散列也可以是由哈希函数确定相似性的一种聚类)。
对于相似性度量,您可以尝试欧氏距离或余弦相似性作为度量(或任何其他指标,例如对称KL散度等)。余弦相似度+K-均值变成了球形K-均值,并且在文档聚类中非常流行(文档中的每个单词都被视为特性)。
为了选择簇数(即K中的K-均值或层次聚类中树状图的高度),可以使用肘形方法method。
希望这能有所帮助。
https://stackoverflow.com/questions/43924587
复制相似问题