我正在尝试使用不同的聚类技术在Python中对时间序列数据进行聚类。K-means算法没有给出好的结果。下面的图片是我使用凝聚聚类算法进行聚类后得到的结果。我还尝试了动态时间规整。这两种方法似乎给出了相似的结果。
理想情况下,我希望第二张图片中的时间序列有两个不同的簇。第一张图片是一个快速增长的簇。第二张图片是一种无增长的、稳定的簇,第三张图片是一个下降趋势的簇。我想知道哪些时间序列是稳定的且受欢迎的(这里的“受欢迎”指的是高计数)。我尝试了分层聚类,但结果显示出太多的层次,我不确定如何选择层次的级别。是否有人能够说明如何将第二张图片中的时间序列分成两个不同的簇,一个是低计数,另一个是高计数?这是否可能?或者我应该只是直观地选择一个阈值来将它们分成两部分?
快速增长的簇:
https://istack.dev59.com/MKYI0.webp 稳定计数的簇:
https://istack.dev59.com/YF0TA.webp 下降趋势的簇:
https://istack.dev59.com/TUTnI.webp 这是我分层聚类的结果,非常模糊。
https://istack.dev59.com/iItd4.webp 总的来说,如果您想区分趋势,例如YouTube视频,如何只选择一些视频进入“流行”栏目,而其他视频进入“本周流行”栏目?我知道在YouTube的情况下,除了观看次数之外还考虑了许多其他因素。对于第二张图片,我试图做的与“本周流行”栏目类似。我想挑选那些有很高计数的时间序列。在这种情况下,我该如何分割时间序列?
理想情况下,我希望第二张图片中的时间序列有两个不同的簇。第一张图片是一个快速增长的簇。第二张图片是一种无增长的、稳定的簇,第三张图片是一个下降趋势的簇。我想知道哪些时间序列是稳定的且受欢迎的(这里的“受欢迎”指的是高计数)。我尝试了分层聚类,但结果显示出太多的层次,我不确定如何选择层次的级别。是否有人能够说明如何将第二张图片中的时间序列分成两个不同的簇,一个是低计数,另一个是高计数?这是否可能?或者我应该只是直观地选择一个阈值来将它们分成两部分?
快速增长的簇:
https://istack.dev59.com/MKYI0.webp 稳定计数的簇:
https://istack.dev59.com/YF0TA.webp 下降趋势的簇:
https://istack.dev59.com/TUTnI.webp 这是我分层聚类的结果,非常模糊。
https://istack.dev59.com/iItd4.webp 总的来说,如果您想区分趋势,例如YouTube视频,如何只选择一些视频进入“流行”栏目,而其他视频进入“本周流行”栏目?我知道在YouTube的情况下,除了观看次数之外还考虑了许多其他因素。对于第二张图片,我试图做的与“本周流行”栏目类似。我想挑选那些有很高计数的时间序列。在这种情况下,我该如何分割时间序列?
我知道DTW可以捕捉趋势。 DTW与上面的图像给出了相同的结果。它已经识别出第二张图像中的趋势是“稳定”的。但它没有捕捉到这里的“计数”元素。在这种情况下,我希望同时捕捉到趋势和计数,即稳定和高计数。
上述图像是基于计数的时间序列聚类。我是否错过了其他可以实现此目标的聚类技术?即使只考虑计数,如何根据我的需要进行不同的聚类?
如果有任何想法,请不吝赐教。提前致谢!