《資料科學入門》讀後感

王小超發表於2016-12-29

#電子書閱讀獎勵計劃#
新人第一發。作為一個電氣狗想成為一個碼農是一件挺不容易的事的(國內,國外並不清楚)。因此經過種種嘗試(仔細想想就學了個Python)之後,我還是覺得學一些比較契合本專業的東西(資料處理?),順帶也將程式設計作為自己的一個業餘愛好——
Too young了,現在看來。

買了這本《資料科學入門》,我才發現我還是naive了。“資料處理”確實隸屬於資料科學,但“資料科學”卻不等於資料處理——

  1. 首先,你需要獲得資料。有很多辦法,我以往瞭解的就是從實驗室的師兄師姐這裡拿到“祖傳資料”,或者自己模擬/實驗獲得資料。但在這個時代,你不會從網上獲取資料都不好意思出去見人。這本書的第九章就簡單介紹了一下requests+BeautifulSoup的用法,獲取網頁解析html得到資料。這個令我印象深刻。
  2. 獲取資料之後你就可以對其進行視覺化了。第三章介紹了matplotlib的基本用法。
  3. 處理資料時你總需要用到統計手段。作為一本入門書,這本書從頻率學派到貝葉斯學派介紹得非常詳細,雖然都是基礎部分,但仍然有諸如“辛普森悖論”、相關性與因果性之類的trick重新整理我的三觀。
  4. 對於我們來說,會統計處理資料已經差不多了,但這本書也順藤摸瓜介紹了一些智慧演算法,比如決策樹、神經網路、聚類分析。
  5. 最後,面面俱到的介紹了一些(個人認為)相對重要的分支(NLP、推薦系統)和比較有用的技術(MapReduce、資料庫)。 總之,這本書在內容上淺顯得介紹了資料科學的各個角落,也告訴我一個“Data Scientist”不是那麼好當的。

內容上,可以說是覆蓋面廣泛,事無鉅細都交代了一些;但作為一本“入門”,淺顯易懂、零基礎是少不了的。

  • 開頭第二章簡單介紹了一下Python,雖然之前學過Python語法,但還是能夠得到一些啟示。
  • “入門”還體現在實現方式上。作為電氣狗我也看過一些程式設計書,就算是譚浩強老先生也會每個部分舉幾個例子,這本書也不例外;但作者愣是利用Python最基本的資料結構和庫來進行例子的編寫,那些就算是外行也知道的如雷貫耳的numpy、scipy、pandas、scikit-learn等庫都不用。(matplotlib除外,嘛。。。)雖然有些“重新造輪子”的嫌疑,但從頭做起,一來可以將原理敘述清楚,二來也告訴讀者,“這東西沒啥神奇的,我上我也行”。但作者還是非常貼心地在章末列舉了現成的庫(畢竟自己用標準庫寫的東西穩定性執行速度上面都不是最優的嘛。)
  • 然後,“入門”在數學上的體現當然不是從“1+1=2”開始教起,而是假定讀者沒有基本的統計學知識,概率知識也只限於知道“這玩意是什麼”的程度。由於假定讀者的起點(相對與兲朝正常水平理科高中生)來說有點低,所以在諸如梯度下降的後面介紹lasso和多重回歸分析的時候,我們經常可以見到“令人遺憾的”的字樣(因為要把那個東西從頭到尾解釋明白要浪費大量墨水所以作者選擇了乾脆不解釋?!)。

因而,這本書還是有不足的。主要一點就是“過於基礎了”。剛才也提到了,起點定得過低就會導致在有限的內容下難以講清楚相對複雜的內容。所以作者也算鐵心的在每章章末推薦了相關的文件。畢竟瑕不掩瑜,通過這本書還是學到了很多東西,無論是資料科學,還是Python,甚至從數學公式到程式碼實現的過程。

相關文章