使用python集群/查找类似的热图
我有以下热图的示例图像(我有数百张这样的图像…现在,它将在以后增长): 用我的人眼,我会说热图1,3和4彼此相似,或者3和4彼此最相似,我不确定 我希望能够根据模式和强度将最相似的热图数据分成不同的组 例如,每个热图包含24行和5列(行表示时间,列表示要素)。每列中的每种颜色表示0到1之间的数字。第1列中热图3和4的模式和强度与其他热图相比更为相似。但是,我不想看每一列,而是想比较每个热图的整体模式和强度 我原以为我要使用kmeans集群,但找不到任何可以帮助我实现目标的信息。据我所知,我的搜索结果是相当多的层次聚类,这对我没有帮助 然后,我找到了一些关于图像哈希的信息。读一读,它似乎可以帮助我解决我的问题 在我进一步阅读和学习之前,我有几个问题/困惑需要解决,这样我可以进一步投入时间学习和阅读更好的方法来解决这个问题 我的问题/困惑:使用python集群/查找类似的热图,python,image-processing,machine-learning,computer-vision,k-means,Python,Image Processing,Machine Learning,Computer Vision,K Means,我有以下热图的示例图像(我有数百张这样的图像…现在,它将在以后增长): 用我的人眼,我会说热图1,3和4彼此相似,或者3和4彼此最相似,我不确定 我希望能够根据模式和强度将最相似的热图数据分成不同的组 例如,每个热图包含24行和5列(行表示时间,列表示要素)。每列中的每种颜色表示0到1之间的数字。第1列中热图3和4的模式和强度与其他热图相比更为相似。但是,我不想看每一列,而是想比较每个热图的整体模式和强度 我原以为我要使用kmeans集群,但找不到任何可以帮助我实现目标的信息。据我所知,
欢迎使用任何其他方法。您可以将此问题视为24 x 5=120维(或特征)数据点的群集问题。确保以相同的方式展平每个数据点(row1row2row3…连接或col1col2col3…连接,只选择一个并保持一致)。您可以为每个数据点获取这120个特征,并使用K-means或任何一种分层聚类族方法或任何其他聚类方法对其进行聚类(例如,哈希也可以是一种聚类类型,其中相似度由哈希函数确定) 对于相似性度量,您可以尝试使用欧几里德距离或余弦相似性作为度量(或任何其他度量,例如对称KL散度等)。余弦相似性+K-均值变成球形K-均值,在文档聚类中非常流行(文档中的每个单词都被视为特征) 要选择簇的数量(即K-means中的K或分层簇中的密度图高度),可以使用弯头方法
希望这能有所帮助。在对任何数据执行聚类之前,您应该先弄清楚您的相似性度量是什么。换句话说,是什么使两个热图相似?此外,您应该问问自己是什么使热图非常不同。您可能还想向自己澄清集群对您的案例意味着什么。回答这些问题后,您可以选择适当的度量和聚类方法。(人们通常不会经历这个过程,要么是因为他们不知道足够的聚类方法,要么是因为他们懒惰。或者有时他们只是不想对他们得到的结果做任何假设。然后他们要做的是尝试一些在编程语言中实现的聚类方法,希望软管方法将满足其需求) 下面列出了在选择聚类方法之前,您可能想问自己的一些问题:
- 如果热图A是热图B的旋转,你会说它们相似吗
- 如果热图A是热图B的反射,你会说它们相似吗
- 如果热图A是热图B的移位版本(翻译),你会说它们相似吗
- 如果热图A是热图B的负数,你会说它们相似吗
- 值差为0.01的两个像素是否与值差为0.9的两个像素相同
- 如果热图A和热图B相同,除了一个非常不同的像素外,你们会称它们为相似的吗?还是不同
- 如果热图A的像素值都正好是热图B像素值的一半,你会说它们相似吗
- 如果热图A和热图B非常相似,热图B和热图C非常相似,A和C也相似吗
- 一个集群是否可以包含两个彼此不太相似的热图,前提是存在与这两个热图足够相似的第三个热图
- 热图是否可以属于多个群集
- 我应该使用模糊聚类还是硬聚类
- 在所有热图的空间上,我的度量的公式是什么
- 我的聚类方法依赖于三角形不等式吗
- 我的聚类方法应该允许扩展的连续聚类(在特征空间中查看),其中每个成员仅与其邻居相似,还是所有聚类都需要彼此相似
(选择聚类方法还取决于它的复杂性、它在大量数据上的性能、它是否能够并行、它是否能够为您提供分层聚类、它的结果是否允许对新的热图进行简单分类等等)定义相似性度量。。。什么是相似的?我用一个例子更新了我的问题。如果有帮助,请告诉我。