標籤:

數據科學導論:前言

題圖來自 xkcd

去年暑假我開始寫一些數據科學入門的筆記,現在回頭看慘不忍睹,不至於誤人子弟(所以我就賴著不刪了),但沒達到我現在的期望,決定重寫。

我用樸素的廚房觀看待人類思想:知識的生產就像炒菜,先要有炊具,然後有原材料,加上心靈手巧就能做一盤好菜。數據科學也一樣,說來說去核心工具有三大件:數理統計、機器學習、數據編程,帶上工具、數據和腦子,你就可以自稱數據科學家去解決問題了。數理統計是用數理邏輯分析數據,機器學習從數據里提煉關鍵信息用於預測,數據編程做數據的維護工作,怎麼存儲、怎麼讀取、怎麼可視化、怎麼高效壓榨計算機的性能。

說一下我對數理統計和機器學習的理解。數理統計講求嚴格的證明推導,是從空地起高樓;機器學習歸納從數據里尋找規律的方法(就是 SICP 說的「抽象」),然後反覆調用這些方法用來預測。談不上高低,數理統計是演繹,對結論的解釋和因果推斷更到位,令人信服,但預測效果不怎麼樣;機器學習是歸納,預測得准,但說不清預測是怎麼來的。同時了解這兩門學科是有必要的,而且很多學者在努力結合這兩者。

這個專欄是涉及數理統計、機器學習和數據編程三個方面的學習筆記,主要關注數理統計和機器學習。為什麼要有筆記?筆記通常比教科書更簡潔,比視頻和課件更方便閱讀,適合讀者按圖索驥、複習和總結。很多人講數據科學這麼多東西要學怎麼學得完,我的看法是,做不到樣樣精通,因此更需要有一個地圖,這樣遇到問題了能知道是哪裡出了問題、要去哪裡找答案。那我寫得完嗎?當然寫不完... 拖延症最擅長的就是做完成不了的承諾了, 所以歡迎大家投稿和指責。

我這裡大致梳理一下數理統計的思路。拋一枚正常的硬幣,出現正面的概率 Pfrac{1}{2} ,這個是概率;拋五枚硬幣,有可能是一個正面,兩個正面... 一個 P 不夠用,怎麼用簡潔的語言表示不同情況的概率?用 X 表示未知的隨機的正面數量, X = 2 表示這個數量是 2,這個是隨機變數;有時候,我們預先知道了 Y = 1 ,而且 Y = 1X 有影響,用 P(X) 不合適,需要用 P(X| Y = 1) 表示,這是條件概率;有時候,我們想要知道某個 X 值和某個 Y 值同時出現的概率,用  P(X,Y) 表示,這是聯合概率;我們把隨機變數  X = 0,X = 1,X = 2... 攤在 X 軸上,對應的概率攤在  y 軸上,生成一個個點或者一條線,這是概率分布;隨機變數有一些特徵,例如期望(均值)、方差,它們具有優雅的性質,可以幫助我們推導和證明;假如某個隨機變數服從某個分布,我們要從樣本里儘可能地還原出真實的分布,這是估計;如果兩個變數服從線性關係,也就是  Y = aX + b,加一些噪音就是  Y = aX + b + epsilon,如果一些條件滿足,我們就可以用最小二乘法估計出參數 ab,這是線性回歸;如果這些條件不滿足,那麼我們就需要工具變數、隨機實驗等工具,這個是計量經濟學研究的內容。

機器學習的思路,相比數理統計清晰得多。數據有兩類:有標註的數據和沒有標註的數據;機器學習想通過數據解決兩類問題:預測數值(回歸)和預測類別(分類);有許多演算法能解決這些問題,但不存在最好的演算法,它們都各有優劣;還有一些通用的手段讓演算法的效果更好:交叉驗證可以更有效地利用訓練集和測試集,正則化可以防止過擬合,特徵工程對數據進行預處理,集成方法是綜合不同的演算法結果。

雖然我不喜歡列書單這種營造焦慮感的事情,但考慮到這份筆記的涵蓋範圍,有必要列出參考書目和課程:

Practical Data Science

這門課是 CMU 面向本科生和碩士生的數據科學導論課程,今年第一次把課程視頻公開,同時附有詳細的筆記和作業。

Statistics 110: Probability

這是 Harvard 面向本科生的數理統計課程。

Learning From Data

這門課是 Caltech 面向本科生的機器學習線上公開課程,相比於 Cousera 上 Ng 的課程,理論性更強。

Statistical Learning

這門課是 Stanford 面向無統計背景學生的統計學習線上公開課程,統計學習和機器學習非常相似,但數理統計的味道更濃。

Rice, J. A. (2007) Mathematical statistics and data analysis. 3rd ed.

Wackerly, D. D., Mendenhall, W. and Scheaffer, R. L. (2008) Mathematical statistics with applications. 7. ed.

Wasserman, L. (2013) All of statistics: a concise course in statistical inference.

這三本都可用作學習數理統計的參考書。

筆記更新時間不定,也不會按順序寫,有空就零星地想怎麼寫就怎麼寫,還會有一些數據分析。最好的跟蹤方式是 RSS知乎專欄和我的 Github 倉庫

對了,我目前感覺最好的數據科學 IDE 是 Jupyter Lab,無論是寫作還是寫代碼都好用。


推薦閱讀:

從微積分和線性代數角度看線性最小二乘原理
是什麼驅動了Python近些年強力的增長?來自Stack Overflow的分析
聚類演算法第一篇-概覽
消除對數據科學家的錯誤認識

TAG:數據科學 |