如何使用单个变量对时间序列进行聚类

数据挖掘 r 时间序列 聚类
2022-02-18 13:19:30

让我先说我是 R 和数据科学的初学者,所以如果这是一个相当微不足道的问题,我深表歉意。不过,我确实对我想要实现的目标以及最终结果的外观有一个粗略的了解。我只是不知道哪种算法最适合处理这种数据以及如何实现它。

我想在一个具有 13369 个不同单元的数据帧上运行一个聚类算法,每个单元只有一个跟踪 15 年的变量。所以我的数据看起来像这样:

id  y1  y2  y3  y4  y5  y6  y7  y8  y9  y10 y11 y12 y13 y14 y15

01  0   6   0   3   0   0   0   0   0   0   0   1   1   0   0
02  1   4   1   6   4   3   7   6   3   8   11  10  9   10  10
03  0   0   2   0   5   0   1   0   3   0   0   0   0   0   0
...
...
...
13369 4  9  0   12  5   1   1   0   6   1   2   7   0   0   3

为了为这项任务建立一些背景,这是作者的数据以及他们每年发表的出版物数量,跨越 15 年。

我想最终得到一个树状图,描绘作者所属的各种集群,(我猜)取决于他们在特定时间段内的多产程度(例如,开始与晚年)。

我希望我清楚地解释了一切。感谢您抽出宝贵时间帮助有需要的学生。

1个回答

欢迎来到社区 Blitva!

一开始有几点要明确:

  • 您可以根据作者的时间序列对作者进行聚类,但不一定能回答您提出的问题。他们在特定时间段内的多产可能需要另一种方法来解决这个问题。换句话说,您可以对作者进行聚类,但您不一定知道其背后的原因,除非您根据形成的聚类明确定义相似度。
  • 当您想要回答特定问题时,有时需要进行特征提取。请参阅下面的示例以了解更多信息。
  • 在特定时期多产是什么意思?想象一下一个人1 2 1连续 3 年发表论文,另一个人10 20 10在那个时候发表论文。它们相似吗?如果在他们之间计算多产,他们肯定不相似。但如果按照每个人来计算,那么他们的多产模式就完全一样了!你在找哪一个?

现在回到问题。我的回答如下:

如果您正在寻找类似的模式,即出版物数量的上升和下降,请使用DTW来计算相似度。我确信有 DTW 的 R 实现,但我是一个 Python 人;)在计算成对 DTW 相似性之后,您可以将您的层次聚类应用于它(或者可能是其他一些算法,如光谱聚类)。

祝你好运!