【小(xiǎo)編推薦】京東(dōng)研究院≠∏δ>實戰分(fēn)享:時(shí)間(jiān)序列用(yòng  ✘♥)戶生(shēng)命周期的(de)聚類方法

2015-06-24   | &✘​←nbsp; 發布者:梁國(guó)芳&nb♦÷♦™sp;  | ≈φ±  查看(kàn):3320次®÷

IT新聞
 時(shí)間(jiān)序列和(hé)時(shí)間(jiā≈₩ ✘n)序列分(fēn)析分(fēn)别是(shì)什(shén)麽?♣σ¶α引用(yòng)百度百科(kē)的(de)解釋:時(shí)間(ji> ™↓ān)序列是(shì)指将某種現(xiàn)象某αλ£一(yī)個(gè)統計(jì)指标在不(bù)同時(sh∞δ$í)間(jiān)上(shàng)的(de)各個(gè)數(shù)值,按時λ≤(shí)間(jiān)先後順序排列而形✘®ε 成的(de)序列。而時(shí)間(jiān¥β)序列分(fēn)析(Time seri♣↔es analysis)是(shì)一(yī)種動态數(shù)據處理₹'☆×(lǐ)的(de)統計(jì)方法。該方法基于随 π機(jī)過程理(lǐ)論和(hé)數(shù)理(lǐ<↑)統計(jì)學方法,研究随機(jī)數(sσε>hù)據序列所遵從(cóng)的(de)統計(jì)規律,以用(φ♣☆₽yòng)于解決實際問(wèn)題。

從(cóng)百科(kē)的(de)說(shuō)明(mín®♥g)可(kě)以看(kàn)出,時(shí)間(jiān)序列不(b≥βù)僅僅隻是(shì)一(yī)個(gè)序列數(shù)據,而是(s☆φ €hì)一(yī)個(gè)受系統影(yǐng)響很→'(hěn)大(dà)的(de)序列數(shù)據,時(shí)間(j¶≠✘&iān)序列的(de)數(shù)據本身(shēn)存在于生(shēng)‍$活中的(de)各個(gè)領域裡(lǐ),人(rén)們對(duì)時(shí<×↓&)間(jiān)序列的(de)分(fēn)析從(cóng)很(hěn)早以前✘​就(jiù)開(kāi)始了(le),發展≠$✔至今,在大(dà)數(shù)據環境下(xià),采用♥≥α(yòng)數(shù)據挖掘的(de)方法來(lái ✘ ↓)表示數(shù)據內(nèi)部規律也(yě)成為(wèi)了(le‌®)分(fēn)析時(shí)間(jiān)δ δ序列的(de)一(yī)種重要(yào)方向和(hé)趨勢。

時(shí)間(jiān)序列數(shù)據特征

然而時(shí)間(jiān)序列有(yǒu)著(zhe) ₩兩大(dà)主要(yào)特征,使得(de)這(¥&zhè)種分(fēn)析變得(de)十分(fēn)困Ω→難:

 

  1. 非平穩性(nonstationarity,也(yě)譯作(zuò)不(bù)∏♠​γ平穩性,非穩定性):即時(shí)間(jiā& n)序列變量無法呈現(xiàn)出一(yī)個(gè)長(cháng)期趨λ•←←勢并最終趨于一(yī)個(gè)常數(shù)或是"↓♠(shì)一(yī)個(gè)線性函數(shù),也(yě)就(jiù‌§)是(shì)說(shuō),時(shí)間(jiān)序列在✔✔₹✘每個(gè)時(shí)間(jiān)周期裡(lǐ)可(≤¶γ•kě)能(néng)出現(xiàn)兩種變化(hu'∏ à),一(yī)種是(shì)受整個(gè)系≤÷€¶統變化(huà)的(de)影(yǐng)響,另一(yī)&‌∞Ω種是(shì)随機(jī)的(de)變化(huà)。
  2. 波動幅度随時(shí)間(jiān)變化(h‍π↕uà)(Time—varying Volatility):即一£↑(yī)個(gè)時(shí)間(jiān)序列變量的♥​<(de)方差随時(shí)間(jiān)的(de)變化(huà)而變化(h♦"♦uà)。

 

這(zhè)種不(bù)确定性和(hé)各自(zì)間(jiānλ↕)的(de)相(xiàng)關性,使得(de)有÷™£←(yǒu)效分(fēn)析時(shí)間(jiān)序列變量十分(fēn)✔>‍★困難,舉例來(lái)說(shuō),每個(gè)人(ré €✔∞n)在不(bù)同的(de)時(shí)間(jiān)點産生(s≠'hēng)的(de)行(xíng)為(wèi$< )都(dōu)是(shì)随機(jī)行(xíng)為(wèi♣≈¶≠),但(dàn)即将産生(shēng)的(d π e)行(xíng)為(wèi)或多(duō)或少(∏>₩♥shǎo)又(yòu)會(huì)受個(gè)人(rén)過去≥​π(qù)的(de)行(xíng)為(wèi)習(xí)慣所影(yǐn"↑δ g)響,所以,假設當我們有(yǒu)這(zhè★π¥)個(gè)人(rén)過去(qù)的(de)全部行(™★xíng)為(wèi)數(shù)據時(shí),首先希望通±¥(tōng)過某種方式刻畫(huà)這(zhè)個(g≤↑è)人(rén)過去(qù)的(de)行(xíng××↔¶)為(wèi),并最終找到(dào)和(hé)這(zhè)個(gè)人(rén≈♥δ")有(yǒu)類似行(xíng)為(wèi)≥β☆習(xí)慣的(de)人(rén)群。傳統的(de✘±☆)劃分(fēn)方法很(hěn)多(duō),但(dàn★≠)都(dōu)是(shì)通(tōng)過某個(gè)行'•★(xíng)為(wèi)來(lái)進行(xíng)分(fēn)類劃分•λ(fēn),而将所有(yǒu)相(xiàng)關行(xíng)為(wγ≈èi)放(fàng)在時(shí)間(jiān)序列上♦φ₹∑(shàng)來(lái)進行(xíng)®∏α±整體(tǐ)觀察,就(jiù)用(yòng↑ ¥)戶生(shēng)命周期而言,國(guó)內(nèi)外∞ (wài)都(dōu)有(yǒu)很(hěn)多(duō)人(rénγ€')在研究這(zhè)個(gè)方向,于是(shì)我們思考是(shì)否能(n♥↓ε±éng)找到(dào)一(yī)種方法在實際的​♥±©(de)項目過程得(de)到(dào)應φβ€Ω用(yòng),通(tōng)過大(dà)量的(de)φ±∏♣數(shù)據來(lái)實踐時(shí)間(jiān)® 序列的(de)聚類方法優劣性。

時(shí)間(jiān)序列應用(yòng)範圍

時(shí)間(jiān)序列在很(hěn)多(duō≤$)領域都(dōu)有(yǒu)研究,但(dàn)在電(diàn)π×子(zǐ)商務領域的(de)研究,近(jìn)幾年(nián)才逐漸興起​‍。我們項目中希望能(néng)夠對(duìε​÷)有(yǒu)相(xiàng)似行(xíng)為(wèi)≠₩↕¥的(de)人(rén)群做(zuò)劃分(fēn),但(dàn≥ )在實際中發現(xiàn),由于人(ré≤€n)的(de)很(hěn)多(duō)行(xíng)為(wèi)是(shì)相→←•(xiàng)互關聯的(de),并且在時(shí)間(jiān©←★✔)的(de)維度中還(hái)會(huì÷∞)發生(shēng)變化(huà),可(kě)能(n ¶λ→éng)受過去(qù)的(de)影(yǐng)響,也(yě ↕★☆)可(kě)能(néng)不(bù)受影(♥πyǐng)響,所以,這(zhè)一(yī)秒(m♠‍iǎo)和(hé)下(xià)一(yī)秒(miǎo)都(dōu)是(s"←αhì)不(bù)可(kě)确定的(de),導緻從(cóng)傳統方法的®∑≤(de)聚類存在局限性。所以我們從(cóng)長(cháng)期™↕趨勢研究開(kāi)始,發現(xiàn)消費(σ"fèi)的(de)某些(xiē)行(xíng)為(wèi)卻可(kě≈↓£★)能(néng)是(shì)固定的(de),比如(↑&→rú)定期的(de)購(gòu)買,季節的(γ¶ de)變換,促銷活動的(de)影(yǐng)響等,這(zhè)些(x✔∏÷>iē)都(dōu)是(shì)和(hé)時(sh​γ"í)間(jiān)周期有(yǒu)關系的(de),但(dàn)又(₹✘↓♥yòu)不(bù)隻是(shì)簡單的(de) λ§消費(fèi)數(shù)據表示,于是(sh¥"ì)我們想到(dào)使用(yòng)基于時≠÷✔(shí)間(jiān)序列的(de)聚類的(de)方法來(lái)進行(☆♠xíng)嘗試,得(de)到(dào)了(le)一( ←↕yī)些(xiē)新的(de)效果。因為(wèi)随著(z₩→he)時(shí)間(jiān)的(de)變換,人(rén)是(shì)σ ™會(huì)不(bù)斷改變的(de),每種行(xíng)為(wèi)可(kě÷¶)能(néng)和(hé)時(shí)間(jiān)進行(xíng)關聯後會←δβ(huì)産生(shēng)不(bù)同的(de☆σ✔)結果,我們最後不(bù)僅能(néng)得(de)到(dào)這(z¶∑✔±hè)個(gè)用(yòng)戶局部的(de)行(xíng)為δ∏(wèi)規律,也(yě)可(kě)以看(kàn)到(dào)TA在整體(↓γ≠$tǐ)時(shí)間(jiān)周期裡(lǐ)的(de)行(xíng)✔​為(wèi)的(de)規律,通(tōng)過觀察整體(tǐ)₽γ和(hé)局部,便能(néng)更好(hǎo)¥∑β的(de)刻畫(huà)用(yòng)戶的(de)生(shēng)命周期。

時(shí)間(jiān)序列聚類方法

關于時(shí)間(jiān)序列聚類的(de)方法,根據一(yī)些 ←ε(xiē)理(lǐ)論文(wén)獻,簡單總結如(rú)下(xià♣π):

1、傳統靜(jìng)态數(shù)據的(de)聚類方法有(yǒu):✔‍•基于劃分(fēn)的(de)聚類、基于層次的(de)聚類、基于密度的(‍₽≠¶de)聚類、基于格網的(de)聚類、基于¥÷×模型的(de)聚類;

2、時(shí)間(jiān)序列聚類方法:大(dà)概©♦≠有(yǒu)三種,一(yī)是(shì)基于形态特征,即形狀變化(h™'₩uà),包括全局特征和(hé)局部特征;二是→γ‍"(shì)基于結構特征,即全局構造或內(nèi)在變化(huà)機♠∞×♦(jī)制(zhì),包括基本統計(jì)特征、時(shí)域特征和(‌$≤hé)頻(pín)域特征;三是(shì)©✘™$基于模型特征,參數(shù)的(de)的(de)變←β∏化(huà)影(yǐng)響系統的(de)變化(h≠¶®uà),同時(shí)存在随機(jī)變化(huà)。∞λδ✔

然而無論是(shì)分(fēn)類、聚類還(hái)是(shì)關聯規則挖掘,∏≤★♥都(dōu)需要(yào)解決時(shí)間(jiān)∏↕•序列的(de)相(xiàng)似度問(wèn)題₩♦≈,相(xiàng)似性搜索是(shì)時¥™↕(shí)間(jiān)序列數(shù)據挖掘的(d≈$e)研究基礎。由于時(shí)間(jiān✔₽)序列存在各種複雜(zá)變形(如(rú)平移、伸縮、間(jiān)斷≤δ•γ等) ,且變形時(shí)間(jiān)和(h→₽é)變形程度都(dōu)無法預料,傳統的(de)歐&™氏距離(lí)已經無法勝任。經過一(yī)番調研後,目前,動态時(shí)₩™間(jiān)彎曲(DTW) 相(xiàng)似距離(lí)的(de)φβ穩定性已在國(guó)內(nèi)外(wài)↑•↓得(de)到(dào)驗證,于是(shì)我們打算(suàn)采用(y φòng)DTW來(lái)嘗試聚類分(fēn)類。

歐式距離(lí)

我們定義兩個(gè)時(shí)間(jiān)♣↓≠•序列長(cháng)度為(wèi)N的(de)序列T和(hé)D的 ₹♦"(de)歐式距離(lí)如(rú)下(xià):

 

歐式距離(lí)本身(shēn)也(yě)是(s₽☆hì)計(jì)算(suàn)空(kōng)間(jiān)距離(lí)的(dε∑"e),我們剛開(kāi)始選用(yòng)它來(lái)計(j™♦ì)算(suàn)距離(lí),但(dàn ₽∑)發現(xiàn)單獨使用(yòng)準确性不(bù)高(gāoσ$♠)。現(xiàn)在,我們來(lái)做(zuò)一(y♣©€↓ī)個(gè)簡單的(de)實驗:

 

圖1 三條序列曲線

首先,用(yòng)Python來(lái)簡單的(de)畫(hu×∏↓à)三條曲線,如(rú)圖1所示。從(cóng)圖™λ←δ中可(kě)以明(míng)顯的(de)看(kàn)出¥•∑,ss1和(hé)ss2曲線是(shì)很(hěn)相♥₽±$(xiàng)似(這(zhè)裡(lǐ)就(jiù)是(shì)sin函數​♥♦♥(shù)的(de)不(bù)同區(qū)間(jiān)變☆γ±換),ss3和(hé)他(tā)們兩個(gè)都(dōu)有(yǒ≈↓σu)明(míng)顯的(de)不(bù)同。我們使用(yòng↔≈)公式來(lái)計(jì)算(suàn)ss1和(hé)ss2,ss1∑∏和(hé)ss3的(de)距離(lí),結果如(rú)下(xià):

ss1 --> ss2 的(de)歐式距離(lí):26≥♠↕¥.959216038

ss1 --> ss3 的(de)歐式距離(lí):23.1892491↑∑$903

從(cóng)上(shàng)面可(kě)以直觀的↔¥↔&(de)發現(xiàn)ss1和(hé)ss2的(de)距離(lí)值反而更✘↔☆∏大(dà)。這(zhè)裡(lǐ)隻是(shì)直觀的γ♠÷↑(de)說(shuō)明(míng)它本身(shēn®₽ ☆)對(duì)序列計(jì)算(suàn)的(de)問(wè₹↕n)題,其實當發現(xiàn)時(shí)間(jiān)序列的(de✔©)頻(pín)率變化(huà),時(shí)間(jiān)σγσ≈扭曲的(de)時(shí)候,單一(yī)的(de)歐式距離↓♥↕(lí)公式的(de)偏差是(shì)比較£‌≈大(dà)的(de)。

動态時(shí)間(jiān)規整(Dynamic Time Warping

動态時(shí)間(jiān)規整現(xiàn)∏✔β在應用(yòng)的(de)比較多(duō)的(de)是(shì)在語±↑ ¶音(yīn)識别上(shàng),因為(wèi)DTW本身(shēn)是φ'≈<(shì)為(wèi)了(le)找到(d♣'ào)最優非線性時(shí)間(jiān)序列之間(jiān)的(de™γ)距離(lí)值。這(zhè)個(gè)算(§♠suàn)法是(shì)基于動态規劃(DP)的(de)思想,解決了(le)α•✘Ω發音(yīn)長(cháng)短(duǎn)不(bù)一(yī)的(de)♠&模闆匹配問(wèn)題,簡單來(lái)說®☆₩σ(shuō),就(jiù)是(shì)通(tōng)過構建一(yī)個(gε‍è)鄰接矩陣,尋找最短(duǎn)路(lù)徑和(hé)的(de)算(s♦★♠uàn)法。現(xiàn)在我們繼續試驗,定義兩個(gè)時(shí)間(j←×§iān)序列長(cháng)度為(wèi)n的(de)序列T和(↕≈γhé)D:

我們需要(yào)先構建一(yī)個(gè)n x n的(☆♦ de)矩陣,其中i,j是(shì)ti和(hé♦")dj之間(jiān)的(de)歐式距離(lí),Ω↑$✔我們想通(tōng)過這(zhè)個(gè)矩陣的(de)最小(xiǎo✔§±)累積距離(lí)的(de)路(lù)徑。然後确定對(duì)比兩 ♥₹​個(gè)時(shí)間(jiān)序列之間(jiān)的(de)距離(l₹↑♦→í)。我們叫這(zhè)個(gè)路(lù)徑¥ ₹λ為(wèi)W:


其中每個(gè)元素代表了(le)T和(hé)D點之間Ω↓(jiān)的(de)距離(lí),例如(rú):


我們想找到(dào)距離(lí)最小(xiǎo)的(de)路(l§​σ✘ù)徑:


最佳路(lù)徑是(shì)使用(yòng)的(de)Ω↔動态規劃遞歸函數(shù),具體(tǐ)公式如(rú)下←♣¥‍(xià):


最後得(de)到(dào)結果:

ss1 --> ss2 的(de)DTW距離(↔ε♣lí):17.9297184686

ss1 --> ss2 的(de)DTW距離(líσ≥"↕):21.5494948244

這(zhè)個(gè)例子(zǐ)比較簡單,僅供參考。而後我們ε$團隊經過更多(duō)其它真實的(de)實驗後,最後還(hái)是(∑γ•shì)選用(yòng)了(le)DTW作(zuò♦↕π±)為(wèi)時(shí)間(jiān)序列的​©(de)計(jì)算(suàn)的(de)方法,但(dà¥∏♠n)在實際運行(xíng)過程中,發現(xià←₩n)DTW的(de)運算(suàn)速度确實σ ¶β比較慢(màn),目前正在實驗提升它效率的(de)方法。經過一(yī)段φ↓↑γ時(shí)間(jiān)的(de)分(™©λλfēn)析後,我們準備開(kāi)始進行(xíng♦∏β​)聚類。我們使用(yòng)k近(jìn)鄰分(fēn)類算(suàn)法。根≤ 據經驗,最理(lǐ)想的(de)結果是(shì)當然是(™≈♠¶shì)k = 1時(shí)的(de)距離(lí)值,在該算(±↑suàn)法中,訓練集和(hé)測試集分(fēn)别采用(yòng)的(♣≤¥×de)時(shí)間(jiān)序列的(de)周期集合數(shù£δ )據集,在算(suàn)法中,對(duì)測試集進行(xí₩♠ng)預測的(de)每個(gè)時(shí)間(jiān)序列,搜索∞ ∑是(shì)必須通(tōng)過訓練中的(de)所 →≠<有(yǒu)的(de)點集,發現(xiàn)最相(xiàngπ✔)似的(de)一(yī)點。

時(shí)間(jiān)序列分(fēn)析的(de)未來(lái)展望

時(shí)間(jiān)序列分(fēn)析未來(lái)研究的(♣‍de)一(yī)個(gè)重要(yào)源動力可(kě)能(néng)會( ‍→huì)是(shì)來(lái)自(zì)于“互網絡δ♥♠↓+”電(diàn)子(zǐ)商務等商業(yè)領域巨大( γ'dà)數(shù)據量的(de)數(shù)據。在全球競争日(rì)益激烈的(£♣λ€de)商業(yè)環境中,這(zhè)些♠≈(xiē)數(shù)據的(de)可(kě)利用(yòng)價α$φ值也(yě)會(huì)越來(lái)越↓φ♠大(dà)。然而,這(zhè)些(xiē)龐大(dà♠↔♣±)的(de)數(shù)據,本身(shēn)的(de)離(lí)£π∑散型和(hé)連續型的(de)多(duō)元變量相(xiàng♥♣)混雜(zá),傳統和(hé)現(xiàn)有(yǒu)的(de)數(&≈∑×shù)據處理(lǐ)方法遠(yuǎn)遠(yuǎn)不(bù)能(néng™"±)對(duì)其進行(xíng)有(yǒu©↑‍)效的(de)加工(gōng)、清洗和(hé)處理(lǐ)。對(duì)這(πε♥zhè)些(xiē)數(shù)據進行(xíng)綜合分(fēn)析的(de♦¥α≠)迫切性肯定會(huì)影(yǐng)響未來(lái)時(shí)間(jiān☆♣)序列分(fēn)析的(de)研究方向。

筆(bǐ)者大(dà)膽地(dì)猜測,在未來(lái),時(shí" ×)間(jiān)序列分(fēn)析的(de)研≠₹究可(kě)能(néng)會(huì)有(yǒu)以下(xià)←≤₹♥幾個(gè)方向發展:

 

  1. 研究不(bù)同變量間(jiān)動态關系生(shēng)成 € ♦的(de)模型和(hé)算(suàn)法将會(huì)大(dà)量出現(x&¶iàn),同時(shí)研究同一(yī)個(gè)時(shí)間(jiān♣  ©)周期內(nèi)變量間(jiān)自(z‌<ì)有(yǒu)的(de)動态變化(huà)的(de)γ'$₩方法也(yě)會(huì)逐漸出現(xiàn),并且©÷效果會(huì)越來(lái)越好(hǎo);
  2. 獨立随機(jī)性事(shì)件(jiàn)和(hé)系統性事(sh →ì)件(jiàn)對(duì)整體(tǐ)周期變化<≤£ (huà)的(de)影(yǐng)響的(de)&₽≤分(fēn)析也(yě)會(huì)變得(de)日(rì←≈×)益重要(yào);
  3. 數(shù)據挖掘技(jì)術(shù)的(de)利用(yòng)¥↕☆來(lái)分(fēn)析時(shí)間(jσ↓iān)序列也(yě)将日(rì)益引起各個(gè)領域研究者們的(≥ §♠de)重視(shì),對(duì)大(dà)量數(shù)據的(de♣₹>)使用(yòng),以及如(rú)何更有(yǒu)效地(dì)挖掘出有(σ ₹γyǒu)效的(de)時(shí)間(jiān)相(xiàng)關特♥★≤∏征數(shù)據也(yě)是(shì)未>←✔☆來(lái)發展的(de)趨勢;
  4. 基于神經網絡的(de)機(jī)器(qì)學習(xí)算(suααàn)法也(yě)将會(huì)應用(yòng)到(dào★π)大(dà)量時(shí)間(jiān)序列的(d↔φ↓e)分(fēn)析中,未來(lái)會(hu γ←ì)朝著(zhe)人(rén)工(gōng) ≠智能(néng)這(zhè)個(gè)方向快(kδ ₩≈uài)速地(dì)前進,例如(rú),現(xiàn¥✔)在比較火(huǒ)熱(rè)的(de)深度學習(xí)算(suàλ<®n)法,未來(lái)是(shì)不(bù)是("≠shì)也(yě)能(néng)應用(yòng)到(dào)對(duì)時( ‌'shí)間(jiān)序列的(de)分(fēn)析上(shàng)來(lá↑↓‌i)呢(ne)。

 

當然,真實的(de)未來(lái)還(hái)需要(yào)時(®πshí)間(jiān)本身(shēn)來(lái)檢驗。