我是集群分析的新手,并且正在使用Python sklearn.cluster模块来分析我的数据。到目前为止我还没有运气,所以我想提个建议。我的数据包括几个世纪以来某些日期的事件计数(更具体地说,是教堂记录中记录的洗礼,婚姻或葬礼的数量)。因此,我的数据实际上可以表示为一个简单的整数向量:[5,0,0,0,1,0,0,2,0,1 .....]其中表示每天,但事件计数可能为零。我实际上是想确定记录保存中可能存在的差距,并且我认为可以对事件进行聚类,然后查看聚类之间的差距。这并不像报告连续日期之间的间隔是否超过某个阈值那样简单,因为它实际上取决于每天记录的事件数和记录的频率。例如,假设在一段时间内每月发生30个事件,然后在3个月内每周仅发生1个事件,然后在几年内再次增加到每月30个事件。在那种情况下,我想说三个月的时间可能会有差距,尽管在此期间发生了一些事件,但事件数量却急剧减少。换句话说,“差距”并不意味着很长一段时间内的零事件。相反,它可以通过一定时期内事件总数相对于上一个时期和下一个时期的变化来表示。
因此,这似乎是基于密度的聚类问题。我将具有可变密度的群集,但是我不知道会有多少个群集,因此我无法使用像KMeans这样的算法来要求您知道有多少个群集。我尝试了HDBSCAN,但它发现的集群在时间上甚至都不连续,即集群1由一系列日期组成,然后是集群2,然后又回到集群1,这对我的数据没有意义。我没有足够的经验来了解许多算法的优点,缺点和要求,但是我想建议从sklearn或至少在python中可用的东西中尝试什么。
答案 0 :(得分:0)
开箱即用的集群不能只是神奇地解决了您的问题。从本质上讲,聚类是一种易碎方法,需要通过适当的预处理进行仔细指导。
在这里,我认为您应该关注时间序列细分,而不是聚类。因为这些方法实际上使用时间信息。