數據挖掘的若干問題

最近幾年大數據被炒得很火,而數據分析也逐漸吃香。由於不下心在這個行業呆過兩年,把自己的丁點兒想法寫下來,供大家指正交流。

大數據VS小數據(引子):數據分析並不是互聯網出現之後纔有的,早期的天文學家開普勒、哥白尼之所以提出日心說,都是基於大量的觀測數據而得到結論。尤其是普通物理學的各種定律等,往往都是以實驗室的實驗數據爲基礎。以此並不能發現,數據分析對近代社會的科學發展帶來了不可磨滅的貢獻。但是互聯網時代開始,人們的網上行爲都被記錄下來,或許當‘物聯網’時代來臨之後,絕大多數的行爲事件都會被記錄,“大”的時代就這樣來臨。

現在提到的大數據的“大”往往隱含了數據的更新快速、種類繁雜、數據量大、價值密度低、對分析者更高的數據掌控理解的要求等等一些特徵,有時候故障、人爲引起的異常數據也會混雜其中。而與此相對我們說的小數據則種類單一(我們做安培定律的實驗時不需要關心什麼時候做實驗,做實驗之前上的是語文課還是數學課,做實驗的時候心情怎麼樣,最後的結果都是安培定律又一次被驗證了,而對於用戶而言即使我們知道發身在他身上的一切,也可能猜不到下一刻他要幹啥),數據量小(一個4*4的表格的數據就基本夠我們下結論了),並且數據的正確性有足夠的保證。不禁有些期待在小數據都有如此驚人的成就時,大數據又帶來怎樣的變革?

理性VS直覺:在招聘數據分析師的條條框框中經常看到“較強的數據感”,咋一看怎麼都不明白什麼,怎麼算有數據感,後來一想大概就是直覺,初聽起來和數據分析這種“死理性派”的東西有點格格不入,這個東西真的很重要嗎?在數學上有一條定理叫費馬小定理,說的是一個叫費馬的人不知道哪天吃錯了藥,猜出一個費馬小定理(當然那個時候可能不這麼叫,感興趣的可以百度一下具體內容),三百年後終於被當代的傑出青年證明出來了。類似於此的例子在自然科學領域比比皆是,比如相對論在提出的時候其實也是沒有任何數據支撐的,有一羣人(雖然他們站錯了隊,但也是當時的傑出青年)設計了巧妙的實驗企圖證明它是荒謬的,於是數據支撐也就漸漸多了。不管怎麼說,如果在解一道題之前就猜到了正確答案,對於解題的幫助可是不小的;當然如果經常猜錯,那就是沒數據感了。其實直覺判斷對於我們經常遇到的事物所做的判斷一般都會很準確(比如:我們起牀之後從來都不會思考先穿襪子還是先穿鞋,但我們就是知道要先穿襪子),但是面對新鮮事物時,我們的大腦就好像一個沒有被訓練過的神經網絡模型,會給出十分荒謬的答案,模型沒錯,錯的是沒經驗。

設計VS訓練:往往一提到數據挖掘、機器學習之類的,大家很容易想到“訓練”之類的詞彙,而往往不會想到“設計”這個詞;但對於一個應用的model而言,其中特徵的選取、量化、組合方式,訓練集測試集的選取,異常數據的處理這些部分都是由modeler設計而來,最後剩下少量測參數由訓練給出結果。其中設計的部分主觀成分很多,雖然我們引用各種統計學知識作爲證據,但是不同的modeler設計出的東西可能完全不同,但是訓練的部分則會更傾向於客觀。不同的model訓練和設計所佔的比重可能不同,比如對於一個ictclas中文分詞算法來說,其中所有參數都是統計而來,而最後只看成句的概率高低,完全沒有發現其中有任何訓練的痕跡,現在一般提到的item based,user based 的協同過濾算法也是設計爲主,不含訓練的而成分;但是對於一個神經網絡的系統而言,除了特徵的組合方以及神經網絡的層數等被事先給定,參數幾乎完全是訓練學習而來(或基於統計結果的優化),而較熱的深度學習甚至連特徵選取都交給訓練完成(雖然這個訓練的目標已經不是過去的最優函數,而是自編碼,不過應該還是屬於訓練的範疇)。對於訓練模型來說有一個夢魘永遠如影隨形,就是過擬合(通俗點就是model只對當前訓練集有效),有時候人們用正則項來應對這個問題。假如有一天深度學習取代了其他所有方法一家獨大,”數據感“一詞估計就會退出舞臺,不過那個時候電腦估計也能思考了。

特徵VS算法:算法是個什麼東西呢?如果我們用X表示所有的相關因素的集合,Y表示相關因素X確定後的某個我們關注事物。因爲事物之間的必然聯繫,我們知道有一個函數H使得我們在X已知時可以判斷Y,即Y=H(X)。一般來說大家說的算法就是指H,也就是處理已知的X然後得到未知Y的方法(函數),當然,特徵指的就是X了。但從這個數學形式上面來看,算法H和特徵X都是直接影響輸出重要因素,但是我們總是看到利用了“XXX算法”準確度提升了“XXX”之類的報告,卻很少有說利用“XXX特徵”,原來的算法準確度提升了“XXX”;算法爲什麼就被宣傳得“高大上”,而特徵卻默默無聞呢?這裏我也不多說,大家可以看看這篇小文http://yanyiwu.com/work/2014/06/01/tuijian-xitong-de-nadianshi.html;雖然作者可能有點小憤青,但是其中一些觀點也是我想說的,脫離特徵的算法是不可取的。其實工作中我有兩個詞是不太願意用的,一個是“算法”,另一個是“模型”。

因果VS相關:《大數據》一書濃墨重彩的的說了一個觀點:是相關關係,而不是因果關係。有時候也有些人引用這一觀點,但是我想爲“因果關係”說句話。在數據分析中我們發現的是相關關係,數據並不能夠證明其因果性;如果我們僅僅滿足於觀察瞭解世界,相關的確足夠了,但是如果想改變,則必須因果關係。爲了說明這一問題,我舉一個例子:某餐飲公司通過長期的數據觀察發現如下兩條線索:A.每月的績效和每月的食材進貨量正相關;B.每月的績效和每月的廣告宣傳正相關。老闆看了這兩個線索後,提出兩個方案,希望能夠提高績效:A)每月進貨量提升爲原來的1.2倍 B)每月的廣告費用提升爲原來的1.2倍。老闆採用了方案A然後大賺特賺,大家覺得可能嗎?但是如果供貨商想根據下游的進貨量去估測下游商家的績效以及發展情況,A線索卻仍然是一個不錯的選擇。因此對於想要改變現狀的人們來說,相關關係並不足夠,必須清楚各個事物之間的因果關聯才能做出正確的選擇。我們從數據中統計發現的是相關關係,但是我們追求的是因果關係。

簡VS繁:之前一段時間去聽過一個講座,是關於 NIID的(非獨立同分布)。主要是說絕大多數已統計學爲出發點的算法都有一個基本假設:獨立同分布;但是現實事物之間的聯繫往往錯綜複雜,並不能滿足這一假設。因此提出爲了更好的預測效果,需要棄用這一假設,建立更精細的模型,考慮更全面的聯繫,更多的還原世界的本來面貌;最後演講者也給出了不少很有說服力的證據。這些觀點很合情理也,也合乎邏輯;但是我沒有買賬。在《大數據時代》中提出的簡單算法在大數據集下顯示出比複雜算法較優的效果的現象我也親身經歷過類似情況,在吳軍的《數學之美》中也提到了兩種人:一種崇尚簡單,另一種推崇精細。我個人還是認爲在大數據量的情況下把事情考慮的太精細有可能是不正確的。雖然宏觀上各種規律客觀存在,但是當微觀到某一個個體時隨機性卻通常變爲其重要特徵,一個複雜的系統是會放大這種個體隨機性最後影響全局。有電影《蝴蝶效應》講述的是主人公不滿意現實生活,回到過去阻止一件關鍵事件的發生,但回來現在後卻發現一切都改變了。真實的世界是一個混沌系統,蝴蝶的翅膀也可能扇出颶風。如果我們有一個非常接近真實世界的模型,那麼就必須保證如蝴蝶一般微小的信息差錯都不存在,才能保證模型和我們的真實世界朝相同方向發展,但是數據量一旦大了,個別的差錯在所難免。

結束語:茶後閒話,飯後談資,若有失語之處,請海涵之。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章