k-shape时间序列聚类(tslearn)

  1. 时间序列聚类概述

时间序列数据挖掘从技术角度来讲,一般有四种:时间序列预测,时间序列分类,时间序列聚类,时间序列异常检测,基本上包含了机器学习的几大领域。由于时序数据的特殊性,所以每一个方面都与截面数据挖掘有所区别。本文主要讲讲时序聚类中的k-shape算法。

  • 时间序列数据的聚类,关键在于如何定义相似度,比如基于时间序列特征(len,max,min,std,lag)作为特征,描述不同时序的特性,可以使用 KMeans算法,用欧式距离进行聚类。
  • 除了欧式距离以外,还可以使用DTW等方法,基于动态规划原理,对时间序列进行扭曲,进行必要的错位,计算出最合适的距离,将形状相似的序列具有同一个类,非常简洁的一篇理解DTW计算距离的算法文章见个人所写另一篇博客

  1. 时间序列聚类的应用

作为一种广泛的数据挖掘手段,时间序列聚类的用途,就个人理解来说,首先是辅助机器学习建模预测,可以把聚类结果作为一种特征放入模型中,当然也可以用于不同序列分类预测的标签,其次是,用于新品预测等,依据形状相似度,找到相似的产品,发现商品潜在的未来规律,等等。

k-shape算法优点就是针对形状计算距离,优点很鲜明,同时不得不说的是计算复杂度很高,且我们使用tslearn包进行聚类,是需要不同的序列长度一致的。

不同形状的时序聚类效果
在这里插入图片描述
在这里插入图片描述

从轮廓系数用手肘法确定最佳聚类个数

  1. 代码部分
    本文代码包含以下几方面:
  • 1.数据读取与预处理(序列填充,使每条序列等长)
  • 2.计算轮廓系数,求出轮廓系数最大时的聚类个数k
  • 3.使用最佳聚类个数,得到序列聚类标签
  • 4.可视化,绘制elbow线图辅助检验聚类个数是否合理,同时绘制不同序列的聚类效果图。

完整代码和数据

其他相关参考价值比较大的链接如下:
1.介绍互相关原理与python计算
https://fanyublog.com/2015/11/16/corr_python/
2.记录了使用SBD以及k-shape采坑
https://blog.csdn.net/qq_37960007/article/details/107937212

评论 53
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值