
數(shù)據(jù)科學(xué)家教你用數(shù)據(jù)模型來(lái)戀愛(ài)
男生和女生分別是來(lái)自不同星球的科學(xué)事實(shí)已經(jīng)眾所周知的了.男生們總是認(rèn)為,女生們都是迷一樣的生物,他們的情感狀態(tài)浮動(dòng)似乎是以秒單位在變化的,難以理解,更勿論預(yù)測(cè)了! 而女生們覺(jué)得男生都是沒(méi)有感覺(jué)動(dòng)物,完全不能理解什么叫感受-盡管已經(jīng)告訴他們N次了!這種男女之間的根本差別,導(dǎo)致了他們之間的感情關(guān)系是受一種超級(jí)無(wú)敵復(fù)雜的系統(tǒng)所支配的.
不過(guò),我們可以用一個(gè)叫隱式馬爾可夫(Hidden Markov Model)的數(shù)學(xué)模型來(lái)分析這個(gè)系統(tǒng).
決定性系統(tǒng)
首先我們來(lái)看看一種最簡(jiǎn)單的預(yù)測(cè)系統(tǒng) - 決定性系統(tǒng).
在這個(gè)系統(tǒng)中,如果我們知道我們目前所在的狀態(tài),那么我們也就能夠毫無(wú)疑問(wèn)地預(yù)測(cè)出下一個(gè)狀態(tài)是什么. 比如一年四季的輪替就是一個(gè)決定性系統(tǒng):每個(gè)季節(jié)的交替是完全可以預(yù)測(cè)的,如果現(xiàn)在是春天,那么下一個(gè)季節(jié)就一定會(huì)是夏天,冬天的前一個(gè)狀態(tài)就一定是秋天等等.另外值得一提的是,冬天過(guò)后,下一個(gè)季節(jié)就又會(huì)回到春天,以此循環(huán)...
另外一個(gè)常見(jiàn)的決定系統(tǒng),就是交通燈的輪換: 紅燈過(guò)后就應(yīng)該是綠燈. 綠燈過(guò)后就應(yīng)該是黃燈,然后又回到紅燈.
這種系統(tǒng)非常常見(jiàn),人的一生大致也能看作是這種系統(tǒng). 有嬰兒,少年,成年,老年,然后死亡等幾種狀態(tài). 不過(guò)不同的是,人的一生又不是完全遵循這種狀態(tài)輪換的, 每個(gè)人都有那么丁點(diǎn)的可能性會(huì)跳過(guò)其中一個(gè)或者多個(gè)狀態(tài),直接到達(dá)死亡的狀態(tài)...(更勿論Benjamin Buttons的情況了,呵呵).
講到這里,聰明的男生或許已經(jīng)能想到,我們的世界里最為精妙,最雷人的非決定性系統(tǒng)就是 --你女朋友的情感狀態(tài)!
對(duì)于大部分男生來(lái)說(shuō),精確地預(yù)測(cè)女朋友的下一種的情感狀態(tài)基本上屬于扯淡.
一個(gè)mm現(xiàn)在可能心情很好,可是下一秒?yún)s進(jìn)入抓狂;她或許某個(gè)時(shí)刻處于悲傷,下個(gè)時(shí)刻卻變得異常興奮.在每個(gè)女生的情感狀態(tài)里面,都有一種基于概率卻又難以預(yù)測(cè)的本質(zhì),這種無(wú)序的本質(zhì)直接導(dǎo)致無(wú)數(shù)男生直接蹲地畫(huà)圈圈......
盡管看上去女生的情感狀態(tài)似乎毫無(wú)預(yù)測(cè)性可言,經(jīng)過(guò)一段長(zhǎng)時(shí)間的觀察,卻能發(fā)現(xiàn)這種現(xiàn)象是有規(guī)律的! 于是小明,作為一名計(jì)算機(jī)科學(xué)家, 決定要系統(tǒng)地去分析他女朋友的情感不確定性, 挖掘出里面的規(guī)律!
于是乎,小明仔細(xì)地記錄了半年來(lái)他女朋友小麗每天的喜怒哀樂(lè)變化狀態(tài), 并作了一張圖表(Table1)來(lái)表示小麗的歷史情感變化.
小明想知道, 有了這些數(shù)據(jù),他能否從中得出知道, 如果小麗某天的情感狀態(tài)是高興, 那么第二天她更多的是保持好心情呢,還是更多地變得悲傷了.如此等等...
數(shù)據(jù)勝于雄辯, 小明從這半年的數(shù)據(jù)里面發(fā)現(xiàn),當(dāng)小麗高興的時(shí)候,3/4的情況下第二天她仍然保持著好心情,只有1/4的情況小麗第二天心情會(huì)改變,比如變得氣憤,悲傷等等(小明真TM走運(yùn)!).小明繼續(xù)分析其他各種情感狀態(tài)變化情況,比如從高興到悲傷, 悲傷到氣憤, 高興到氣憤等所有的可能組合.很快小明就得到所有的組合變化數(shù)據(jù),從中得知對(duì)于任意小麗的某天情感狀態(tài)下,下一個(gè)最有可能的情感狀態(tài).
為了便于教學(xué),我們假設(shè)小明只關(guān)心小麗的四種感情狀態(tài):高興 悲傷 氣憤還有憂(yōu)慮
Table 1: 小麗的情緒狀態(tài)變化表
在這個(gè)表格中, 每個(gè)數(shù)字代表了小麗情緒從某列轉(zhuǎn)變到某行的概率. 比方說(shuō), 如果小麗某天的情緒是高興,那么她將有0.1的概率下一天她會(huì)變得 悲傷 或者是 氣憤, 有0.05的可能性轉(zhuǎn)變?yōu)?憂(yōu)慮. 每一行代表了從某種情緒轉(zhuǎn)變到各種情緒的概率,因此每行的概率之和為 1.
同理,每一列代表了由各種情緒轉(zhuǎn)變?yōu)樵摿兴淼那榫w的概率,因此每列的概率總和也應(yīng)該為1.
我們可以畫(huà)一個(gè)狀態(tài)圖(圖1)來(lái)表示表格1, 每個(gè)圓圈代表著一種心情狀態(tài), 每?jī)煞N心情變化由一個(gè)有向弧,從當(dāng)前的心情狀態(tài)指向下一個(gè)心情狀態(tài)表示,每個(gè)弧上均帶有一個(gè)狀態(tài)轉(zhuǎn)換的概率.
Figure 1: 小麗的情緒狀態(tài)變化圖
有了這個(gè)圖表,小明就可以非常直觀地看得到小麗最有可能的下個(gè)心情會(huì)是如何. 她會(huì)很有可能變得悲傷嗎?(準(zhǔn)備好鮮花巧克力),還是更有可能是氣憤?(趕緊閃開(kāi)!) 每天小明只需要看看哪個(gè)弧指向的心情概率最大就可以了.
這個(gè)過(guò)程,同學(xué)們,就是有名的"馬爾可夫過(guò)程" (Markov process)
不過(guò)需要注意的是, 馬爾可夫過(guò)程有一些假設(shè)的前提. 在我們的例子里面, 預(yù)測(cè)下一天小麗的心情, 我們只依賴(lài)當(dāng)天小麗的心情,而沒(méi)有去考慮更先前她的心情. 很明顯這種假設(shè)下的模型是遠(yuǎn)不夠精確的. 很多時(shí)候,隨著日子一天一天的過(guò)去,女生一般會(huì)變得越來(lái)越體諒.經(jīng)常女生生氣了幾天后,氣就會(huì)慢慢消了. 比方說(shuō)如果小麗已經(jīng)生氣了3天了,那么她第二天變得高興起來(lái)的可能性,在多數(shù)情況下,要比她只生氣了一天而第二天變得高興的可能性要高. 馬爾可夫過(guò)程并沒(méi)有考慮這個(gè), 用行話(huà)講, 就是馬爾可夫模型忽略遠(yuǎn)距離歷史效應(yīng) ( long range dependency).
我很佩服各位能堅(jiān)持讀到這里, 不過(guò),還沒(méi)完呢, 我仍然沒(méi)有說(shuō),隱式馬爾可夫模型 (Hidden Markov Model)是什么呢! 諸位如果已經(jīng)有點(diǎn)頭昏腦漲,請(qǐng)就此打住,以免大腦過(guò)熱死機(jī)!
隱式馬爾可夫模型 - Hidden Markov Model, or HMM for short.
有些時(shí)候,我們無(wú)法直接觀測(cè)一個(gè)事物的狀態(tài). 比方說(shuō), 有些女生是很能隱瞞自己的情感而不流露出來(lái)的! 他們可能天天面帶微笑但不代表他們就天天高興 因此我們必須要有竅門(mén), 去依賴(lài)某些我們能夠直接觀察到的東西.
話(huà)說(shuō)回來(lái)我們的主人公小明, 自從被小麗發(fā)現(xiàn)他這種近乎變態(tài)的科學(xué)分析行為后,變得非常善于隱藏自己的心情,導(dǎo)致某天小明錯(cuò)誤估計(jì)了小麗的心情!在誤以為那天小麗會(huì)心情好的情況下,小明告訴小麗自己不小心摔壞了她心愛(ài)的iPod...,小明沒(méi)想到其實(shí)那天小麗正因?yàn)榍耙惶戾e(cuò)過(guò)了商場(chǎng)名牌打折扣的活動(dòng)而異常氣憤... 一場(chǎng)血雨腥風(fēng)過(guò)后,兩個(gè)人最終分手了.
不過(guò)很快小明憑著自身的英俊高大瀟灑,很快又交上了另外一個(gè)女朋友 - 小玲. 鑒于小明意識(shí)到,女生表面的情感流露非常不可靠, 小明決定要另尋他徑, 繼續(xù)預(yù)測(cè)女朋友的心情! (作為一個(gè)數(shù)據(jù)科學(xué)家,小明的確有著不怕碰壁的精神!)
小明每個(gè)月都幫小玲付信用卡的費(fèi)用(真不明白,有這樣的男朋友,小玲有什么理由不高興啊!), 因此小明每天都可以通過(guò)Online banking知道小玲每天都買(mǎi)了什么東西. 小明突然靈機(jī)一動(dòng): "沒(méi)準(zhǔn)我能通過(guò)觀測(cè)她的購(gòu)物規(guī)律,推導(dǎo)預(yù)測(cè)出小玲的心情!".聽(tīng)起來(lái)有點(diǎn)匪夷所思,不過(guò)這個(gè)過(guò)程,的的確確是可以使用叫作隱式馬爾可夫的數(shù)學(xué)模型來(lái)表示并分析的.
由于我們需要預(yù)測(cè)的變量 - 心情狀態(tài) 是無(wú)法直接觀測(cè)的,是隱藏 (Hidden)起來(lái)的.因此這種模型才叫隱式馬爾可夫模型.
在一次和小玲的好朋友們一起吃飯的時(shí)候, 小明得知了以下重要的信息:"小玲高興的時(shí)候經(jīng)常去買(mǎi)一大堆新衣服", "那天小玲一個(gè)人去超市買(mǎi)了一堆吃的,一定是有什么心事了(憂(yōu)慮)", "你千萬(wàn)不要惹小玲生氣阿,不然她會(huì)刷爆你的信用卡的!", "小玲好幾次傷心難過(guò)的時(shí)候,一整天都宅在家里看雜志.". 知道了這些信息,小明擴(kuò)展了他原先一直采用的馬爾可夫模型, 為每種隱藏的狀態(tài)(心情)賦予了新的可觀測(cè)狀態(tài)(Observables),這些可觀測(cè)狀態(tài)為:
1.\t大部分(>50%)花費(fèi)是Fashion商場(chǎng)(O1)
2.\t大部分(>50%)花費(fèi)在超市(O2)
3.\tOh my God! 一天刷了5000元以上!!! (O3)
4.\tOh yeah! 這一天她都沒(méi)花錢(qián)(O4)
為圖簡(jiǎn)便,我們假設(shè)小玲和小明的ex小麗,有著同樣的實(shí)際心情轉(zhuǎn)換概率(圖1).
小明通過(guò)歸類(lèi)統(tǒng)計(jì)小玲過(guò)往的信用卡帳單(天啊,怎么這么多!),發(fā)現(xiàn)了如表2所示的每天心情與每天信用卡消費(fèi)之間的關(guān)系:
Table 2: 小玲的每天情緒狀態(tài)與當(dāng)天信用卡花費(fèi)的關(guān)系概率表
我要加一句的是, 由于概率的歸一性(各種可能性之和為1), 我們?yōu)榱瞬唤档捅疚牡膴蕵?lè)搞笑性, 規(guī)定如果某天小玲大部分的花費(fèi)是Fashion或者是在超市,那么她的花費(fèi)不可能超過(guò)5000, 這樣我們才有各行的 O1+O2+O3+O4 =1.
也就是說(shuō),當(dāng)小玲高興的時(shí)候, 小明發(fā)現(xiàn)80%的情況下那些天小玲基本都買(mǎi)性感小衣衣了(:Q), 也有那么10%的情況下大部分買(mǎi)吃的了, 令小明郁悶的是,居然小玲高興了,還有那么5%的情況,刷了他5000+ ;最后剩下5%的情況小玲可能因?yàn)樘吲d而顧不上消費(fèi)了(小明暗笑:"對(duì)對(duì),就是那次,她心情特好, we BEEP all day, it was the best we ever had!" )
自此, 小玲心情的隱式馬爾可夫模型就出來(lái)了(圖2).
Figure2: 小玲的隱式馬爾可夫模型
有了這個(gè)模型,我們就可以回答這個(gè)問(wèn)題:
"如果我知道了小玲的信用卡花費(fèi)規(guī)律,我能否找出她最有可能的心情變化序列是什么?"
具體一點(diǎn)吧, 某次小玲到外地出差了一個(gè)星期, 小明每天打電話(huà)給她問(wèn)她今天開(kāi)心嘛? 小玲都說(shuō) "開(kāi)心"...但實(shí)際呢?
小明自言自語(yǔ)說(shuō), 哼你不告訴我, 我就只好算算了! 小明Login到了小玲信用卡網(wǎng)站,打開(kāi)statement,統(tǒng)計(jì)了一下,發(fā)現(xiàn)小玲這一個(gè)星期的消費(fèi)規(guī)律是:"O2 O1 O4 O2 O3 O1 O4" (對(duì)應(yīng)著消費(fèi)序列 穿的, 吃的, 沒(méi)刷, 吃的, 刷爆, 穿的, 沒(méi)刷 )
有了這個(gè)消費(fèi)序列和圖2的模型, 有辦法找出小玲這7天最有可能的心情序列是什么嗎?
信不信由你, Viterbi search algorithm (維特比搜索算法)就是用來(lái)計(jì)算出HMM模型中給定觀測(cè)序列O(消費(fèi)規(guī)律), 對(duì)應(yīng)的最有可能的隱藏狀態(tài)序列(心情變化). 關(guān)于Viterbi的原理和實(shí)現(xiàn)已經(jīng)超出本文的講解范圍了,有興趣的同學(xué)可以去Wiki或者動(dòng)手Google一下. 簡(jiǎn)單來(lái)說(shuō)Viterbi屬于動(dòng)態(tài)規(guī)劃 (Dynamic programming) 算法的一種,用來(lái)比較高效地計(jì)算出一個(gè)轉(zhuǎn)移矩陣及其觀測(cè)矩陣(分別對(duì)應(yīng)我們的Table1 和 Table2)制約下的最大可能的隱藏狀態(tài)轉(zhuǎn)移序列 -如果我們事先知道觀測(cè)序列的話(huà).
根據(jù)以上的轉(zhuǎn)移矩陣(table 1})和觀測(cè)矩陣(table 2), 建立起HMM模型并采用Viterbi算法(HMM還需要添加一個(gè)狀態(tài)起始概率來(lái)表示每種狀態(tài)作為起始狀態(tài)的可能性,由于小明沒(méi)有辦法知>道這個(gè)數(shù)字,因此只能作最簡(jiǎn)單的假設(shè) - 假設(shè)他們都是均勻分布的(uniformly distributed),所以每種狀態(tài)的起始>概率均為1/4).
可以知道,對(duì)應(yīng)以上觀察序列,小玲那七天最為可能的情緒序列為:
憂(yōu)慮 悲傷 悲傷 憂(yōu)慮 氣憤 高興 悲傷
概率為 p=1.4x10^-5
看來(lái)小玲這次出差壓力不小啊!
嗚呼! 至此整個(gè)Hidden Markov Model就介紹完了.
當(dāng)然,中間仍然有很多細(xì)節(jié)我是直接忽略了. 而且在現(xiàn)實(shí)使用當(dāng)中,HMM模型中的規(guī)模要大得多,無(wú)論是隱藏的狀態(tài)數(shù)目,還是可觀測(cè)的狀態(tài)數(shù)目,都超過(guò)千計(jì). HMM 及其相關(guān)算法被大量廣泛使用在各行各業(yè).在計(jì)算機(jī)信息學(xué)中, 大量語(yǔ)音識(shí)別, 中文分詞,中文拼音漢字轉(zhuǎn)換系統(tǒng)采用的都是隱式馬爾可夫模型.
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶(hù) ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱(chēng) BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢(xún)到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢(xún)結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢(xún)結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專(zhuān)注于從單 ...
2025-07-09year_month數(shù)據(jù)類(lèi)型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類(lèi)型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門(mén)控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書(shū)考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專(zhuān)業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03