
淺析時間序列用戶生命周期的聚類方法
一、時間序列
時間序列和時間序列分式分別是什么?
時間序列是指將某種現(xiàn)象某一個統(tǒng)計(jì)指標(biāo)在不同時間上的各個數(shù)值,按時間先后順序排列而形成的序列。
而時間序列分析(Time series analysis)是一種動態(tài)數(shù)據(jù)處理的統(tǒng)計(jì)方法。該方法基于隨機(jī)過程理論和數(shù)理統(tǒng)計(jì)學(xué)方法,研究隨機(jī)數(shù)據(jù)序列所遵從的統(tǒng)計(jì)規(guī)律,以用于解決實(shí)際問題。(引自百度百科)
從上述說明可以看出,時間序列不僅僅只是一個序列數(shù)據(jù),而是一個受系統(tǒng)影響很大的序列數(shù)據(jù),時間序列的數(shù)據(jù)本身存在于生活中的各個領(lǐng)域里。人們對時間序列的分析從很早以前就開始了,發(fā)展至今,在大數(shù)據(jù)環(huán)境下,采用數(shù)據(jù)挖掘的方法來表示數(shù)據(jù)內(nèi)部規(guī)律也成為了分析時間序列的一種重要方向和趨勢。
二、時間序列特征
時間序列變量有以下兩大主要特征:
1.非平穩(wěn)性(nonstationarity,也作不平穩(wěn)性,非穩(wěn)定性):即時間序列變量無法呈現(xiàn)出一個長期趨勢并最終趨于一個常數(shù)或是一個線性函數(shù)。也就是說,時間序列在每個時間周期里可能出現(xiàn)兩種變化,一種是受整個系統(tǒng)變化的影響,另一種是隨機(jī)的變化。
2.波動幅度隨時間變化(Time—varying Volatility):即一個時間序列變量的方差隨時間的變化而變化。
正是因?yàn)檫@種不確定性和各自間的相關(guān)性,使得有效分析時間序列變量十分困難。舉例來說,每個人在不同的時間點(diǎn)產(chǎn)生的行為都是隨機(jī)行為,但即將產(chǎn)生的行為或多或少又會受個人過去的行為習(xí)慣所影響。假設(shè)當(dāng)我們有這個人過去的全部行為數(shù)據(jù)時,首先希望通過某種方式刻畫這個人過去的行為,并最終找到和這個人有類似行為習(xí)慣的人群。
傳統(tǒng)的劃分方法很多,但都是通過某個行為來進(jìn)行分類,將所有相關(guān)行為放在時間序列上來進(jìn)行整體觀察。就用戶生命周期而言,國內(nèi)外都有很多這個方向的研究。那么能否找到一種方法通過大量的數(shù)據(jù)來實(shí)踐時間序列的聚類方法優(yōu)劣性,并應(yīng)用到實(shí)際項(xiàng)目中呢?
三、相關(guān)案例
時間序列在電子商務(wù)領(lǐng)域的研究,近幾年才逐漸興起。我們在項(xiàng)目中希望能夠?qū)τ邢嗨菩袨榈娜巳鹤鰟澐?,但發(fā)現(xiàn)由于人的很多行為是相互關(guān)聯(lián)的,并且在時間的維度中還會發(fā)生變化,可能受過去的影響,也可能不受影響,所以,這一秒和下一秒都是不可確定的,從傳統(tǒng)方法的聚類存在局限性。
但我們從長期趨勢研究中發(fā)現(xiàn)消費(fèi)的某些行為可能是固定的,比如定期的購買、季節(jié)的變換、促銷活動的影響等,這些都是和時間周期有關(guān)系的,于是我們想到使用基于時間序列的聚類的方法來進(jìn)行嘗試,得到了一些新的效果。隨著時間的變換,人的行為可能和時間進(jìn)行關(guān)聯(lián)后會產(chǎn)生不同的結(jié)果,我們最后不僅能得到這個用戶局部的行為規(guī)律,也可以看到用戶在整體時間周期里的行為的規(guī)律,通過觀察整體和局部,便能更好進(jìn)行用戶畫像。
四、時間序列的聚類
關(guān)于時間序列聚類的方法,簡單總結(jié)如下:
1.傳統(tǒng)靜態(tài)數(shù)據(jù)的聚類方法有:基于劃分的聚類、基于層次的聚類、基于密度的聚類、基于格網(wǎng)的聚類、基于模型的聚類;
2.時間序列聚類方法:大概有三種,一是基于形態(tài)特征,即形狀變化,包括全局特征和局部特征;二是基于結(jié)構(gòu)特征,即全局構(gòu)造或內(nèi)在變化機(jī)制,包括基本統(tǒng)計(jì)特征、時域特征和頻域特征;三是基于模型特征,參數(shù)的的變化影響系統(tǒng)的變化,同時存在隨機(jī)變化。
然而無論是分類、聚類還是關(guān)聯(lián)規(guī)則挖掘,都需要解決時間序列的相似度問題,相似性搜索是時間序列數(shù)據(jù)挖掘的研究基礎(chǔ)。由于時間序列存在各種復(fù)雜變形(如平移、伸縮、間斷等) ,且變形時間和變形程度都無法預(yù)料,傳統(tǒng)的歐氏距離已經(jīng)無法勝任。經(jīng)過調(diào)研得知,目前動態(tài)時間彎曲(DTW) 相似距離的穩(wěn)定性已在國內(nèi)外得到驗(yàn)證,于是我們打算采用DTW來嘗試聚類分類。
五、歐式距離
我們定義兩個時間序列長度為N的序列T和D的歐式距離如下:
歐式距離本身也是計(jì)算空間距離的,我們剛開始選用它來計(jì)算距離,但發(fā)現(xiàn)單獨(dú)使用準(zhǔn)確性不高。現(xiàn)在,我們來做一個簡單的實(shí)驗(yàn):
圖1 三條序列曲線
首先,用Python來簡單的畫三條曲線(如圖1),從圖中可以明顯的看出,ss1和ss2曲線是很相似(這里就是sin函數(shù)的不同區(qū)間變換),ss3和他們兩個都有明顯的不同。我們使用公式來計(jì)算ss1和ss2,ss1和ss3的距離,結(jié)果如下:
ss1 --> ss2 的歐式距離:26.959216038
ss1 --> ss3 的歐式距離:23.1892491903
從上面可以直觀的發(fā)現(xiàn)ss1和ss2的距離值反而更大。這里只是直觀的說明它本身對序列計(jì)算的問題,其實(shí)當(dāng)發(fā)現(xiàn)時間序列的頻率變化;時間扭曲的時候,單一的歐式距離公式的偏差是比較大的。
六、動態(tài)時間規(guī)整(Dynamic Time Warping)
動態(tài)時間規(guī)整現(xiàn)在應(yīng)用的比較多的是在語音識別上,因?yàn)镈TW本身是為了找到最優(yōu)非線性時間序列之間的距離值。這個算法是基于動態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長短不一的模板匹配問題,簡單來說,就是通過構(gòu)建一個鄰接矩陣,尋找最短路徑和的犯法。現(xiàn)在我們繼續(xù)試驗(yàn),定義兩個時間序列長度為n的序列T和D。
我們需要先構(gòu)建一個n x n的矩陣,其中i,j是和之間的歐式距離,我們想通過這個矩陣的最小累積距離的路徑。然后確定對比兩個時間序列之間的距離。我們叫這個路徑為W。
其中每個元素代表了T和D點(diǎn)之間的距離,例如:
我們想找到距離最小的路徑:
最佳路徑是使用的動態(tài)規(guī)劃遞歸函數(shù),具體公式如下:
最后得到結(jié)果:
ss1 --> ss2 的DTW距離:17.9297184686
ss1 --> ss3 的DTW距離:21.5494948244
七、聚類
從實(shí)驗(yàn)后,我們最后選用了DTW作為時間序列的計(jì)算的方法。但在實(shí)際運(yùn)行過程中,發(fā)現(xiàn)DTW的的運(yùn)算速度確實(shí)比較慢,目前正在實(shí)驗(yàn)提升它效率的方法。有了計(jì)算方法后,我們準(zhǔn)備開始進(jìn)行聚類了。我們使用k近鄰分類算法。根據(jù)經(jīng)驗(yàn),最理想的結(jié)果是當(dāng)然是k = 1時的距離值。在該算法中,訓(xùn)練集和測試集分別采用的時間序列的周期集合數(shù)據(jù)集,在算法中,對測試集進(jìn)行預(yù)測的每個時間序列,搜索是必須通過訓(xùn)練中的所有的點(diǎn)集,發(fā)現(xiàn)最相似的一點(diǎn)。
八、小結(jié)
本文只是簡單介紹了在實(shí)際項(xiàng)目中使用時間序列聚類算法時產(chǎn)生的疑惑和解決思路,期間很多方法可能還是嘗試和實(shí)驗(yàn)階段。由于時間的原因,可能還有很多細(xì)節(jié)方面考慮不是很周到,DTW算法比較可靠
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10