http://mp.weixin.qq.com/s?src=3&timestamp=1482222651&ver=1&signature=5N0Cdx1JH9TunFAYxxOx04nAbAHd3BZ6qNeGGvnBSNW5q2596SzhhhOBFeANLO-FoJc1vqLbt7GHeSrimYoKz1C90Bm3xKx30fekziaWCKM0QgMfwqiqxWB*dY0pmDrZN7dXp5UiPYghKf7OpURfWQ==

时间序列

时间序列和时间序列分式分别是什么?时间序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列。而时间序列分析(Time series analysis)是一种动态数据处理的统计方法。该方法基于随机过程理论和数理统计学方法,研究随机数据序列所遵从的统计规律,以用于解决实际问题。(引自百度百科)

从上述说明可以看出,时间序列不仅仅只是一个序列数据,而是一个受系统影响很大的序列数据,时间序列的数据本身存在于生活中的各个领域里。人们对时间序列的分析从很早以前就开始了,发展至今,在大数据环境下,采用数据挖掘的方法来表示数据内部规律也成为了分析时间序列的一种重要方向和趋势。

时间序列特征

时间序列变量有以下两大主要特征:

1.非平稳性(nonstationarity,也作不平稳性,非稳定性):即时间序列变量无法呈现出一个长期趋势并最终趋于一个常数或是一个线性函数。也就是说,时间序列在每个时间周期里可能出现两种变化,一种是受整个系统变化的影响,另一种是随机的变化。

2.波动幅度随时间变化(Time—varying Volatility):即一个时间序列变量的方差随时间的变化而变化。

正是因为这种不确定性和各自间的相关性,使得有效分析时间序列变量十分困难。举例来说,每个人在不同的时间点产生的行为都是随机行为,但即将产生的行为或多或少又会受个人过去的行为习惯所影响。假设当我们有这个人过去的全部行为数据时,首先希望通过某种方式刻画这个人过去的行为,并最终找到和这个人有类似行为习惯的人群。传统的划分方法很多,但都是通过某个行为来进行分类,将所有相关行为放在时间序列上来进行整体观察。就用户生命周期而言,国内外都有很多这个方向的研究。那么能否找到一种方法通过大量的数据来实践时间序列的聚类方法优劣性,并应用到实际项目中呢?

相关案例

时间序列在电子商务领域的研究,近几年才逐渐兴起。我们在项目中希望能够对有相似行为的人群做划分,但发现由于人的很多行为是相互关联的,并且在时间的维度中还会发生变化,可能受过去的影响,也可能不受影响,所以,这一秒和下一秒都是不可确定的,从传统方法的聚类存在局限性。但我们从长期趋势研究中发现消费的某些行为可能是固定的,比如定期的购买、季节的变换、促销活动的影响等,这些都是和时间周期有关系的,于是我们想到使用基于时间序列的聚类的方法来进行尝试,得到了一些新的效果。随着时间的变换,人的行为可能和时间进行关联后会产生不同的结果,我们最后不仅能得到这个用户局部的行为规律,也可以看到用户在整体时间周期里的行为的规律,通过观察整体和局部,便能更好进行用户画像。

时间序列的聚类

关于时间序列聚类的方法,简单总结如下:

1.传统静态数据的聚类方法有:基于划分的聚类、基于层次的聚类、基于密度的聚类、基于格网的聚类、基于模型的聚类;

2.时间序列聚类方法:大概有三种,一是基于形态特征,即形状变化,包括全局特征和局部特征;二是基于结构特征,即全局构造或内在变化机制,包括基本统计特征、时域特征和频域特征;三是基于模型特征,参数的的变化影响系统的变化,同时存在随机变化。

然而无论是分类、聚类还是关联规则挖掘,都需要解决时间序列的相似度问题,相似性搜索是时间序列数据挖掘的研究基础。由于时间序列存在各种复杂变形(如平移、伸缩、间断等) ,且变形时间和变形程度都无法预料,传统的欧氏距离已经无法胜任。经过调研得知,目前动态时间弯曲(DTW) 相似距离的稳定性已在国内外得到验证,于是我们打算采用DTW来尝试聚类分类。

欧式距离

我们定义两个时间序列长度为N的序列T和D的欧式距离如下:

欧式距离本身也是计算空间距离的,我们刚开始选用它来计算距离,但发现单独使用准确性不高。现在,我们来做一个简单的实验:

图1 三条序列曲线

首先,用Python来简单的画三条曲线(如图1),从图中可以明显的看出,ss1和ss2曲线是很相似(这里就是sin函数的不同区间变换),ss3和他们两个都有明显的不同。我们使用公式来计算ss1和ss2,ss1和ss3的距离,结果如下:

ss1 --> ss2 的欧式距离:26.959216038

ss1 --> ss3 的欧式距离:23.1892491903

从上面可以直观的发现ss1和ss2的距离值反而更大。这里只是直观的说明它本身对序列计算的问题,其实当发现时间序列的频率变化;时间扭曲的时候,单一的欧式距离公式的偏差是比较大的。

动态时间规整(Dynamic Time Warping)

动态时间规整现在应用的比较多的是在语音识别上,因为DTW本身是为了找到最优非线性时间序列之间的距离值。这个算法是基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,简单来说,就是通过构建一个邻接矩阵,寻找最短路径和的犯法。现在我们继续试验,定义两个时间序列长度为n的序列T和D。

我们需要先构建一个n x n的矩阵,其中i,j是和之间的欧式距离,我们想通过这个矩阵的最小累积距离的路径。然后确定对比两个时间序列之间的距离。我们叫这个路径为W。

其中每个元素代表了T和D点之间的距离,例如:

我们想找到距离最小的路径:

最佳路径是使用的动态规划递归函数,具体公式如下:

最后得到结果:

ss1 --> ss2 的DTW距离:17.9297184686

ss1 --> ss3 的DTW距离:21.5494948244

聚类

从实验后,我们最后选用了DTW作为时间序列的计算的方法。但在实际运行过程中,发现DTW的的运算速度确实比较慢,目前正在实验提升它效率的方法。有了计算方法后,我们准备开始进行聚类了。我们使用k近邻分类算法。根据经验,最理想的结果是当然是k = 1时的距离值。在该算法中,训练集和测试集分别采用的时间序列的周期集合数据集,在算法中,对测试集进行预测的每个时间序列,搜索是必须通过训练中的所有的点集,发现最相似的一点。

小结

本文只是简单介绍了在实际项目中使用时间序列聚类算法时产生的疑惑和解决思路,期间很多方法可能还是尝试和实验阶段。由于时间的原因,可能还有很多细节方面考虑不是很周到,DTW算法比较可靠。目前我们还在通过其他一些对他的优化方法提升速度,后续会继续对电子商务用户生命周期时间序列的挖掘方法进行研究和提升,欢迎交流讨论。

浅析时间序列用户生命周期的聚类方法相关推荐

  1. 【分析方法】用户生命周期模型

    一.用户生命周期模型 从用户接触产品到离开产品的全过程.用户的生命周期长短将直接影响产品与企业的营收,因此将用户生命周期科学地量化,在合适地时候做出合适地运营策略,从而延长用户地生命周期.

  2. 用户增长——CLV用户生命周期价值CLTV 笔记(一)

    文章目录 1 概念介绍 1.1 概念介绍 1.2 关联指标 1.3 计算方式 1.4 LTV的价值 1.5 应用场景 1.5.1 宏观方面的几个场景: 1.5.2 一个细分的金融场景: 1.5.3 预 ...

  3. 线上分享 | 浅谈用户生命周期运营

    作为互联网从业者,你可能在很多地方都看到过"用户生命周期"这个词.如果用户必定流失,那就要尽一切可能延长用户的生命周期,并且产生商业价值. 本次分享会带你划分用户结构,用RFM模型 ...

  4. java调试生命周期,一种基于JAVA的智能合约生命周期的管理方法与流程

    本发明涉及区块链技术,尤其涉及一种基于JAVA的智能合约生命周期的管理方法. 背景技术: 区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交 ...

  5. PPT 下载 | 神策数据孙文亮:客户全生命周期管理从方法到实践全解析

    在以"场景赋能·驱动有数"为主题的神策 2018 数据驱动大会现场,神策数据技术经理孙文亮发表了名为<客户全生命周期管理从方法到实践>的主题演讲. 温馨提示:点击文末阅 ...

  6. iOS之深入解析WKWebView加载的生命周期与代理方法

    一.前言 从 WebView 开始加载一条请求,到页面完整呈现这一过程发生了什么?无论是做 WebView 性能优化还是异常问题监控与排查,都离不开对WKWebView加载的生命周期与代理方法的剖析. ...

  7. 用户生命周期常用指标_生命周期管理工具如何使用指标

    用户生命周期常用指标 格雷格·萨特克利夫(Greg Sutcliffe)是长期会员,现在是工头社区的社区负责人 . Foreman是用于物理和虚拟服务器的生命周期管理工具. 他一直在研究社区度量标准在 ...

  8. 【报告分享】2019年用户生命周期运营白皮书(京东尼尔森出品).pdf(附下载链接)

    今天分享的报告来京东&尼尔森于2019年10月联合发布的<用户生命运营白皮书.pdf>,报告包含五大部分:1.快消行业发展趋势:2.品类增长机遇与挑战:3.用户生命周期方法论:4. ...

  9. 数据运营小白如何搭建“初期用户生命周期体系”?

    在用户全生命周期的流程中,无论是产品还是运营,都希望了解用户在不同产品阶段的产品使用特点,然后根据不同的特点来设计运营动作以此来提升用户的转化及留存. 在本次内容中我将从运营的视角,结合之前参与的一个 ...

最新文章

  1. VC使用flash简易教程
  2. 支援一波 《面试数十人有感》
  3. java手动切换成独立显卡_JAVA设计模式之调停者模式
  4. android中如何新建一个activity,《Android Activity》活动的介绍和创建
  5. 使用keras为什么accuracy一直为0_TensorFlow 2.0+Keras 防坑指南
  6. js定时器倒计时特效
  7. 高级着色语言HLSL入门(1)
  8. 20190528论文笔记
  9. PHP 大文件下载(方式3 支持断点续传)
  10. 让线程等待10秒_Java多线程-线程状态
  11. PCS7 Step7块破解 解锁 FC FB s7canopener S7 Blocks Unlock
  12. iptv组播和单播的区别
  13. t6服务器虚拟打印机,priPrinter Professional(免费的虚拟打印机) V6.6.0 中文免费版
  14. 计算机关机界面卡住,win7关机卡死在正在关机界面
  15. phpstrom安装,配置,激活教程,以及使用lanyu的激活码,报错1653219,解决办法
  16. 文本批量替换的正则表达式
  17. 更改微信会员卡包内展示信息
  18. 区块链技术运用在票据领域-票据链
  19. 使用spool导出数据
  20. 丢失的拜占庭将军问题之谜

热门文章

  1. IntelliJ IDEA2017.3激活
  2. SRAM SROM DRAM DROM DDR NAND FLASH EMMC的区别
  3. 这样创建EC2实例,才算没浪费AWS的一年免费套餐
  4. Matplotlib绘图库入门(一):pyplot绘图基础
  5. 暴雪战网怎么修改服务器,战网更改地区的图文教程
  6. java如何获取一月的工作日,Java如何获取工作日名称列表?
  7. 打印机150nw报错不能打印
  8. Lucene .Net + 盘古分词 学习资料
  9. Prometheus告警规则
  10. java web 邮件_Javaweb_邮件发送