資料思維二三事
1/ 雖是數學出身,但實際上數學為統計的理解帶來了更多的挑戰。因為數學的重心在於抽象,以高度抽象的方式來統一性地解決問題。而統計則更為關注現實,以具體的例子為基本素材,以“把大家放到一塊兒看看”為方法論,來討論手頭上的資料特徵。
這種在方法論上關於抽象與具體的差別,讓兩者彼此對抗、彼此融合著。能否辯證地看待兩者的關係,成了能否進一步做出深刻認識的關鍵。
2/ 就visualization這個話題來講,曾經很是頭痛於它的侷限性,只能夠做出二維的圖形或三維的展示,完全沒辦法去處理更高維的情形。相比於可以在理論上追求無窮維的自由,visualization顯得異常笨拙。
可事實上,真正的瓶頸在於人類的大腦:你幾乎只能理解二維、三維的世界,維度再往上走就沒什麼感覺了。表面上,你似乎可以想象出一個思維的四稜柱。可是,僅僅在頭腦中渲染出這個四維的物體,已經消耗掉你大腦中80%的CPU。剩下20%的資源,又怎麼夠去理解思維圖形帶給你的資料洞見呢?
你的直感、洞見、趨勢觀察,不會來自於四維空間,而只能是二維空間、三維空間。所以,認真地打磨二維、三維空間的視覺化工具是你唯一有效地選擇。剩下的部分,其實已經被大腦認知所丟棄。
即便是不考慮visualization,就是單純地比對資料,你能做的事情也是極其有限的:心理學研究發現,人類能夠區分清楚的“強弱程度”最多也就只有6個級別。如果再繼續做精細劃分,大腦基本上就會陷入模糊與紊亂,不知道該如何做精細的歸類。
那麼從維度上講,這個限制也是隱形存在的。為什麼要做成二維的表格形式?因為那幾乎就是大腦的極限維度。
而如果你的資料維度遠遠超過這些限制怎麼辦?這才是資料分析被提出來、被需要的根本動因: 你需要把複雜的、高維度的資料做各種倒騰和拆分,讓它能夠以符合人類認知的二維、三維的形式做呈現、做visualization 。
如果不做這樣的降維處理,不把資料以更具限制性的方式呈現出來,大腦只會單純地“無感”,無法產生洞見。無論計算機能夠吸收多麼複雜的資料模式,最終要分析、理解結果的都是一個個的人。而只要是人,他的腦介面就已經決定了資料必須以二維、三維的方式來呈現。
如同計算數學當中的計算代數,無論你做偏微分方程數值解,還是做複雜的最優化,如deep learning這些,你最終都必須迴歸到矩陣計算。為什麼?因為從最底層的角度上講,計算機唯一能做的就是關於加減乘除的矩陣運算。
3/ 要體會人類認知在資料面前的脆弱,其實用不了多少資料就可以辦到。例如,你只要看一眼滿屏的Excel資料表,然後問自己一個問題:看到它們後,你能得出什麼直觀性的結論嗎?又或是產生一些生理上的自然反應嗎?能夠像看完滿屏的一副風景畫照片那樣,立刻在內心留下什麼直接的感觸嗎?
我想不能,你看完這滿屏的資料後,它還是它,你還是你,這就是你和資料之間的認知鴻溝。
人類的認知系統本身,就不善於處理資料,也就是單純的對資料無感。要想直接建立起對資料的感覺,需要漫長的訓練和思考。又或是我們可以調整資料的形式,讓它們以符合人類認知的方式出現,從而讓大腦儘可能多地去吸收資料中蘊含的資訊、感受資料傳遞給你的訴求。
4/ 按照這樣的框架繼續思考,這裡其實涉及到兩個過程,一個是“建立洞見”的過程,另一個是為了讓建立洞見這個事情變得更容易而需要做一些“輔助工作”的過程。
要想“建立洞見”,你需要有領域知識,有問題所在語境的基本認知,有充分的關聯能力。其核心,就是要根據資料“做出決策”。
而輔助性工作,其實涉及的就是倒騰資料的工作,也就是廣大技術人員常常在做的用numpay、pandas、TensorFlow做資料的轉換、遷移和計算。它服務於:當我想要做出某個洞見時,需要看一看某幾個指標的對比,但卻發現沒有現成的資料。於是,需要通過已有的原始資料,經過整理、加工來轉換成形成洞見所需要的資料形式。這類似於礦工不斷地將玉石周圍的石頭打磨掉的過程。
從這個角度講,善於做資料分析處理工作的人不一定善於從資料中得出智慧和結論。
在做一個事情的時候,現實提出你的訴求:你是誰、有什麼需求、有什麼問題、需要哪些東西的支援來構建你的啟發和idea?然後,當你想要解決這些問題時發現這並不能直接辦到,需要先做一些資料的倒騰、將它從一種形式變為另一種形式、把一個側面同另一個側面關聯起來,還需要通過作圖來產生洞見,這時候,就派出能夠剷除這些障礙的工具,把它們一一消滅。
這裡也就是我們提到的兩個環節:
-
一個是你有一個基本的想法,面對一大堆的資料指標時,要有聯想、洞見、找漏洞的能力。
-
另一環節則是在完成上一步時,遇到了技術細節的阻力,於是拿出各種資料分析的模型、工具,來剷除技術障礙。
一旦剷除掉這些障礙,還是需要回歸到第一條——它到底是驗證了、推翻了之前的一個想法?還是,在挖掘的過程中,又有了新的啟發,提出了新的問題、猜測和聯想?
這兩個部分都很重要,但更重要的是你要能夠區分它們,並弄清楚它們之間的關係。就算你倒騰資料的本事很高,可是,如果沒有資料洞見、不會根據計算出來的資料做對比、做觀察、做聯想,你就是一枚單純的礦工。另一方面,如果你需要訓練這些洞見,其實並不一定需要具備倒騰資料的能力。你完全可以讓其他人為你服務,根據已有的、經過處理的資料來源,比如財報或行業報告,開始訓練自己的資料洞察、聯想能力。
單純加強工具使用的能力,例如使用Python的資料分析工具生態:numpy、scikit-learn、pandas,又或是學習SQL的各種CRUD操作,又或是學習TensorFlow,其實僅僅能提高資料倒騰的工程能力,但在資料的洞見、觀察、聯想、剖析上,起不到太大作用。
一個是拆解、組合資料的工具人,另一個則是解讀資料的觀察者。
近期回顧
《 ofollow,noindex">就事論事,就人論事 》
《 睜眼瞎的時代 》
《 關於程式語言的一些趣史 》
如果你喜歡我的文章或分享,請長按下面的二維碼關注我的微信公眾號,謝謝!
更多資訊交流和觀點分享,可加入知識星球: