推荐使用Algorithim进行基于时间的群集

时间:2018-11-11 22:25:51

标签: algorithm k-means data-science hierarchical-clustering

我不太了解基于时间的聚类,并且想知道是否有任何算法适合我的用例。

我有一组运动数据(范围为0-500),我想将它们按时间间隔聚类。

我的问题是我想找到时间点,在该时间点上存在主要的运动差异。我将确切地知道应该将它们分组多少个分组(例如5个单独的集群),但不会知道一个分组的结束位置,而下一个分组的起始位置。

在这种情况下是否有适用的好的算法?我当时在看K-Means,但不管时间如何,它似乎都非常擅长聚类,而我更是在关注运动数据来寻找界限。

1 个答案:

答案 0 :(得分:0)

我认为您可以从动态程序中获得良好的结果。对于每个间隔[i, j),令C(i, j)为损失函数,当间隔值更可能是一个簇时,该函数较低。然后,以L(k, r)为元素k的最多[0, r)个元素簇的最小损耗,我们有方程式

L(1, r) = C(0, r)
L(k, r), k > 1 = min over s in [0, r) of L(k-1, s) + C(s, r).

如果需要O(1)的{​​{1}}值,则通过备忘评估这些方程将花费k时间和O(n^2)空间,其中O(n)是样本数

n的第一个合理选择是该区间内样本的统计差异。天真的,这需要C(i, j)的时间来计算每个时间间隔,但是如果将Theta(n^3)从其最大值迭代到最小,Welford's algorithm可用于在线计算方差,因此整个算法将仍然是s