摘要: 如今數據科學書籍、認證和文憑,如雨後春筍般層出不窮。但許多僅僅是鏡花水月:新瓶裝舊酒(比如統計學和R)放在了“數據科學”這個新瓶裡。
如今數據科學書籍、認證和文憑,如雨後春筍般層出不窮。本文選自《數據天才:數據科學家修煉之道》。
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統計”的電子書,重新改名為“數據科學的介紹”。它是免費的、很好的、寫得很棒的書,且會使高中學生對統計和編程感興趣。但它與數據科學無關。
End.
轉貼自: 36大數據
留下你的回應
以訪客張貼回應