數據科學導論:前言
題圖來自 xkcd
去年暑假我開始寫一些數據科學入門的筆記,現在回頭看慘不忍睹,不至於誤人子弟(所以我就賴著不刪了),但沒達到我現在的期望,決定重寫。
我用樸素的廚房觀看待人類思想:知識的生產就像炒菜,先要有炊具,然後有原材料,加上心靈手巧就能做一盤好菜。數據科學也一樣,說來說去核心工具有三大件:數理統計、機器學習、數據編程,帶上工具、數據和腦子,你就可以自稱數據科學家去解決問題了。數理統計是用數理邏輯分析數據,機器學習從數據里提煉關鍵信息用於預測,數據編程做數據的維護工作,怎麼存儲、怎麼讀取、怎麼可視化、怎麼高效壓榨計算機的性能。
說一下我對數理統計和機器學習的理解。數理統計講求嚴格的證明推導,是從空地起高樓;機器學習歸納從數據里尋找規律的方法(就是 SICP 說的「抽象」),然後反覆調用這些方法用來預測。談不上高低,數理統計是演繹,對結論的解釋和因果推斷更到位,令人信服,但預測效果不怎麼樣;機器學習是歸納,預測得准,但說不清預測是怎麼來的。同時了解這兩門學科是有必要的,而且很多學者在努力結合這兩者。
這個專欄是涉及數理統計、機器學習和數據編程三個方面的學習筆記,主要關注數理統計和機器學習。為什麼要有筆記?筆記通常比教科書更簡潔,比視頻和課件更方便閱讀,適合讀者按圖索驥、複習和總結。很多人講數據科學這麼多東西要學怎麼學得完,我的看法是,做不到樣樣精通,因此更需要有一個地圖,這樣遇到問題了能知道是哪裡出了問題、要去哪裡找答案。那我寫得完嗎?當然寫不完... 拖延症最擅長的就是做完成不了的承諾了, 所以歡迎大家投稿和指責。
我這裡大致梳理一下數理統計的思路。拋一枚正常的硬幣,出現正面的概率 是 ,這個是概率;拋五枚硬幣,有可能是一個正面,兩個正面... 一個 不夠用,怎麼用簡潔的語言表示不同情況的概率?用 表示未知的隨機的正面數量, 表示這個數量是 ,這個是隨機變數;有時候,我們預先知道了 ,而且 對 有影響,用 不合適,需要用 表示,這是條件概率;有時候,我們想要知道某個 值和某個 值同時出現的概率,用 表示,這是聯合概率;我們把隨機變數 攤在 軸上,對應的概率攤在 軸上,生成一個個點或者一條線,這是概率分布;隨機變數有一些特徵,例如期望(均值)、方差,它們具有優雅的性質,可以幫助我們推導和證明;假如某個隨機變數服從某個分布,我們要從樣本里儘可能地還原出真實的分布,這是估計;如果兩個變數服從線性關係,也就是 ,加一些噪音就是 ,如果一些條件滿足,我們就可以用最小二乘法估計出參數 和 ,這是線性回歸;如果這些條件不滿足,那麼我們就需要工具變數、隨機實驗等工具,這個是計量經濟學研究的內容。
機器學習的思路,相比數理統計清晰得多。數據有兩類:有標註的數據和沒有標註的數據;機器學習想通過數據解決兩類問題:預測數值(回歸)和預測類別(分類);有許多演算法能解決這些問題,但不存在最好的演算法,它們都各有優劣;還有一些通用的手段讓演算法的效果更好:交叉驗證可以更有效地利用訓練集和測試集,正則化可以防止過擬合,特徵工程對數據進行預處理,集成方法是綜合不同的演算法結果。
雖然我不喜歡列書單這種營造焦慮感的事情,但考慮到這份筆記的涵蓋範圍,有必要列出參考書目和課程:
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:數據科學 |