【问题标题】:clustering timestamp with timezone from twitter data来自 twitter 数据的带有时区的聚类时间戳
【发布时间】:2013-07-31 08:21:33
【问题描述】:

我有一个下载了推文的 postgres 数据库,我使用带有时区列的时间戳来存储 current_timestamp。所以我想做的就是像这个伟大的家伙那样聚集我的推文

https://gis.stackexchange.com/questions/11567/spatial-clustering-with-postgis

但我不想进行地理聚类,而是进行时间聚类。我的意思是我想通过 current_timestamp 列将我的推文分组。 例如我有 10 条推文:

时间 |正文 |推文ID 2013-07-29 11:17:08.153+03 |一些文字 | 12345600bsa9 2013-07-29 11:19:08.153+03 |还有一些文字| ang698f4s8s4 .. 2013-07-29 16:41:00.968+03 |你好 | 6546448965445 2013-07-29 16:43:00.968+03 |世界| w9087ol0930j3

因此,通过这 4 条推文,我想创建两个集群(通过检查小时距离进行集群)一个集群用于 11:.. 小时,一个用于 16:.. 小时。当然我想把它扩展到日集群、月集群等。 有帮助的人吗? 在此先感谢

【问题讨论】:

    标签: timestamp cluster-analysis


    【解决方案1】:

    对数据进行排序。

    定义一个时间阈值,例如1小时。如果与上一次的差距大于此,则分成两个集群。

    时间是一维的;这不是真正的聚类分析。可以对一维数据进行排序,并作为一个系列进行处理;这更容易。

    【讨论】:

    • 是的,这听起来不错,但如果我想管理多个集群?假设我有 1000 行具有许多不同的时间戳,我想将这些行聚集到一个逻辑数量的集群中,例如 50 或 100 取决于集群类型(小时、日、月、分钟等)。
    • 我尝试使用 array_agg 函数,这是我的代码 SELECT text, array_agg(date_part('hour',time)) AS hours, count(text) as count FROM tweet group by text 但我没有得到正确的结果(类似于 -1row- {11,11,11,11,11. ..})
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2021-06-25
    • 2018-04-17
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多