777
技術社區[雲棲]
偽數據科學家 VS 真數據科學家
如今數據科學書籍、認證和文憑,如雨後春筍般層出不窮。但許多僅僅是鏡花水月:許多人鑽了這一新名詞的空子,將舊酒(比如統計學和R編程)放在了“數據科學”這個新瓶裏。
本文選自《數據天才:數據科學家修煉之道》。
R是一種有20多年曆史的開源統計編程語言及編譯環境,是商業化產品S+的後繼者。R一直以來都局限於內存數據處理,在統計圈子裏非常流行,並因其出色的可視化效果為人稱道。一些新型的開發環境通過創建R程序包或者將其擴展到分布式架構裏(比如將R與Hadoop結合的RHadoop),將R(限於在內存裏處理數據)的能力擴大。其他程序語言當然也存在跟偽數據科學沾邊的情況,比如說SAS,但不及R這麼流行。說到SAS,它價格高昂,在政府機構或者實體企業的應用更為廣泛。但在過去10年數據快速增長的領域(如搜索引擎、社交媒體、移動數據、協同過濾推薦等)運用不多。R跟C、Perl或者Python的語法不一樣(後三者語法根源一樣),其簡易性使得寫R的程序員比較廣泛。R還有很多程序包和不錯的用戶界麵,SAS卻難學很多。
他們往往最終招募的是很純粹的技術極客、計算機科學家,或者缺乏恰當大數據經驗的人。人力資源部門對於數據科學的了解也不會好到哪裏,因此導致更為嚴重的問題,他們給出的招聘廣告就是不斷重複類似的關鍵詞:Java、Python、MapReduce、R、Hadoop和NoSQL。
**MapReduce**隻是一個將數據分解為子集,在不同機器上分開處理,並把所有結果集合起來,從而處理大數據的泛化框架。因此它涉及的是處理大數據的分布式框架,用到的這些服務器和設備則組成雲(Cloud)。
**Hadoop**是MapReduce的一種實現,就像C++是麵向對象編程的實現一樣。
**NoSQL**意味著“Not Only SQL(意為不單隻是SQL)”,是指能更新穎、更高效地訪問(比如MapReduce)數據的數據庫或數據庫管理係統,有時它是作為SQL(標準數據庫查詢語言)之下的隱藏層而存在的。
除了MapReduce以外,還有其他框架——例如,圖形數據庫和環境,它們依賴於節點和邊這類概念,來管理和訪問數據(通常是空間數據)。這些概念並不一定是新的。在穀歌存在之前,分布式體係結構已被應用到搜索技術環境中了。15年前,我寫Perl腳本進行哈希連接(一種NoSQL連接,用來連接或合並數據庫中的兩個表)。然而,現在一些數據庫廠商提供的哈希連接,是SQL連接的一個快速替代品。哈希連接在本書後麵還會討論到。它們使用哈希表,並依賴於名稱-值對的形式。我想說的結論是,有時MapReduce、NoSQL、Hadoop、Python(一種優秀的腳本語言,往往用於處理文本和非結構化數據)會被認為是Perl的後繼者,但它們根源於幾十年前就開發出的係統和技術,隻是在過去的10年裏變得更成熟而已,但數據科學並不隻是這些。
事實上,你可以成為一名真正的數據科學家,且不需要掌握這些技能。NoSQL和MapReduce不是新概念——在這些關鍵詞被創建之前,就有很多人接觸到它們。
- 敏銳的商業頭腦。
- 真正的大數據專業知識(例如,可以在幾個小時內快速地處理一個5 000萬行的數據集)。
- 認知數據的能力。
- 對模型具有猜疑精神。
- 了解大數據“詛咒”。
- 有能力溝通並理解管理人員正在試圖解決哪些問題。
- 能正確評估付你工資所能帶來的回報(ROI)或效益提升(lift)。
- 能夠快速地識別一個簡單的、健壯的、可擴展的解決方案。
- 能夠說服並推動管理人員,即使不情願,也要為了公司、用戶和股東的利益,轉到正確的方向上。
- 真正熱愛數據分析。
- 成功案例的實際應用經驗。
- 數據架構知識。
- 數據收集和清理技能。
- 計算複雜度的基礎知識——如何開發健壯的、高效的、可擴展的、可移植的架構。
- 良好的算法知識。
數據科學家在商業分析、統計學和計算機科學等領域也是通才,比如會掌握這些專業知識:健壯性、實驗設計、算法複雜度、儀表盤和數據可視化。一些數據科學家也是數據策略師——他們可以開發數據收集策略,並使用數據來發現可操作的、能對商業產生影響的見解。這就要求數據科學家具有創造性,能根據業務要求,製定分析、提出解決方案。
- 代數,如果可能的話,包括基本矩陣理論。
- 微積分入門課程。要掌握的理論不多,隻需要理解計算的複雜度和O標記法即可。了解特殊函數,包括對數、指數、冪函數。微分方程、積分和複數不是必要的。
- 統計與概率的入門課程,要了解隨機變量、概率、均值、方差、百分位數、實驗設計、交叉驗證、擬合度和穩健統計的概念(不需要了解技術細節,而是達到本書介紹的程度即可)。
從技術的角度,要掌握的重要技能和知識有R、Python(或Perl)、Excel、SQL、圖形(可視化)、FTP、基本的UNIX命令(sort、grep、head、tail、管道和重定向操作符、cat、cron定時等),以及對如何設計和訪問數據庫有基本了解。了解分布式係統如何工作和在哪裏能發現瓶頸(是在硬盤和內存之間的數據傳輸,還是在互聯網上),這也很重要。最後,要了解網絡爬蟲基本知識,這有助於獲取互聯網上能找到的非結構化數據。
這裏有個偽數據科學的例子,說明數據科學家要開展工作,為什麼需要遵循標準和最佳實踐。這裏討論的例子,並不是說它們是不好的產品——實際上,它們有很多的內在價值——但跟真的數據科學無關。原因有以下兩點:
- 首先,部分統計學家沒有參與到大數據革命中。雖然有些人還寫了關於應用數據科學的書,但隻是重新包裝原來的統計課程。
- 第二,適合大數據集的方法需要變化——按2005年的大數據定義,當有2 000萬行數據時,才有資格成為大數據——但2010年後不能再這樣劃分,因為大數據至少是TB級的。
不少人認為數據科學是統計學的一個新名字,他們把數據科學和偽數據科學,以及2005年的大數據定義與2013年的大數據定義弄混淆了。現代數據也有很大的不同,已經被描述為3個V:速度(velocity)(實時、快速流動)、多樣化(variety)(結構化、非結構化,如微博內容)和大數據量(volume)。我會增加真實性(veracity)和價值(value)。
查看一所著名大學2012年的數據科學訓練手冊,書的大部分內容是關於舊的統計理論。這本書用R來說明各種概念。當用邏輯回歸處理僅僅1萬行數據時,並不是大數據科學,它是偽數據科學。這本電子書全部關於小數據,最後幾章例外,在那裏你會學到一點SQL(嵌入在R代碼中)的知識和如何使用R包從Twitter提取微博內容,且創造出作者所說的詞雲(它和雲計算沒關係)。
即使提取Twitter內容的項目也還是小數據,也沒有分布式體係結構(例如,MapReduce)。事實上,該書從來沒有談到數據架構。該書的水平是初級的。每章以簡單的方式(適合高中學生閱讀)簡短介紹大數據和數據科學,跟該書實際涉獵的小數據科學不搭,跟項目和技術展示脫節。
也許作者增加了這些簡短的段落,是為了可以將他的“R統計”的電子書,重新改名為“數據科學的介紹”。它是免費的、很好的、寫得很棒的書,且會使高中學生對統計和編程感興趣。但它與數據科學無關。
本文選自《數據天才:數據科學家修煉之道》,點此鏈接可在博文視點官網查看此書。
想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
最後更新:2017-06-07 10:01:46