如何聽起來像數據科學家?

不管你從事哪個行業——IT、時尚、食品或者金融,數據都在影響著你的生活和工作。在本週的某個時刻,你也許會參與一場關於數據的討論。

新聞媒體正在越來越多地報道數據洩露、網絡犯罪,以及如何利用數據窺視我們的生活。但為什麼是現在?為什麼今天這個時代是數據相關產業的溫床?

在19世紀,世界處於工業時代。人類通過偉大的機械發明和工業探索世界。工業時代的領袖們,比如亨利·福特,認識到通過這些機器可以創造巨大的市場機會,賺取前所未有的利潤。

當然,工業時代有利也有弊。在我們將大量商品送到消費者手中時,人類也開始了和汙染的鬥爭。

在19世紀,我們非常擅長製造大型機器。但到了20世紀,我們的目標是讓機器變得更小、更快。工業時代已經結束,取而代之的是信息時代。

為了更好地理解事物的運轉情況,我們開始使用機器收集和存儲我們自身與周圍環境的各種信息(數據)。

從1940年開始,像ENIAC(被認為是最早的計算機之一)這樣的機器被用來計算和運行之前從未計算過的數學方程、運行模型和模擬,如圖1.1所示。

如何聽起來像數據科學家?

圖1.1ENIAC計算機

我們終於有了比人類更擅長運算數字的像樣的實驗室助手!和工業時代一樣,信息時代也有利有弊。

信息時代的好處是人類取得了科技發明的非凡成就,比如電視和移動電話;壞處雖然沒有全球性汙染那樣嚴重,但仍然留給我們一個21世紀的難題——過多的數據。

是的,信息時代在數據收集領域的高速發展,讓電子化數據的產量爆炸式增長!據估算,在2011年,我們產生了1.28×1012 GB的數據(好好想一下有多大吧)。

僅僅1年之後,在2012年,我們產生了超過2.8×1012 GB的數據!這個數字只會繼續爆炸或增長。預計2020年產生的數據量將達到4×1013 GB。

每當我們發佈推文,張貼臉書,用微軟Word軟件保存簡歷,或者用短信給媽媽發送一張照片,都促進了這個數字的增長。

我們不僅以前所未有的速度生產數據,我們消費數據的速度也在加快。在2013年,手機用戶平均每月使用的流量在1GB以內。

據估算,今天這一數字已經遠超每月2GB。我們希望從數據中探尋的是洞察,而不僅僅用於性格測試。數據就在那裡,總有一些對我們有價值!肯定有!

我們擁有如此多的數據,而且正在生產更多數據,我們甚至製造了很多瘋狂的小機器24×7不間斷的收集數據,在21世紀,我們面對的真正問題是如何搞懂這些數據。

先輩們在19世紀發明了機器,在20世紀生產和收集了數據,在數據時代則要從數據中探尋洞察和知識,讓地球上每個人都受益。美國政府已新設立了“首席數據科學家”的職務。

那些到現在還沒有數據科學家的科技公司,比如Reddit,已經開始招募數據科學家。這樣做的好處顯而易見——用數據做精準的預測和模擬,可以讓我們以前所未有的方式觀察世界。

這聽起來很不錯,但究竟是什麼意思呢?

本文我們將研究現代數據科學家們使用的專業術語。我們將學習貫穿全書的數據科學關鍵詞和用語。

如何聽起來像數據科學家?

在開始接觸Python代碼之前,我們還將討論為什麼使用數據科學,以及催生數據科學的3個重要領域:

● 數據科學基本的專業術語。

● 數據科學的3個領域。

● 基本的Python語法。

什麼是數據科學

在我們進行更深入的討論之前,先熟悉一下本書將涉及的基本定義。數據科學領域讓人激動或者討厭的都是太年輕,以至於很多定義在教科書、新聞媒體和企業白皮書上各不相同。

1.1.1 基本的專業術語

以下對專業術語的定義較為通用,足夠日常工作和討論之用,也符合本書對數據科學原理的定位。

我們先從什麼是數據開始。給“數據”下定義可能有些可笑,但確實非常重要。

當使用“數據”這個詞時,我們指的是以有組織和無組織格式聚集在一起的信息。

● 有組織數據:指以行列結構分類存儲的數據,每一行代表一個觀測對象,每一列代表一個觀測特徵。

● 無組織數據:指以自由格式存儲的數據,通常指文本、原始音頻/信號和圖片等。這類數據必須進行解析才能成為有組織的數據。

每當你打開Excel(或者其他電子製表軟件)時,你面對的是等待輸入有組織數據的空白行或列。這類程序並不能很好地處理無組織數據。

雖然大部分時候我們處理的都是有組織數據,因為它最容易發現洞察,但我們並不畏懼原始的文本數據和處理無組織數據的各種方法。

數據科學是從數據中獲取知識的藝術和科學。這個定義雖小,卻非常準確地描述了這一宏大課題的真正目的!數據科學涉及的範圍非常廣,需要好幾頁紙才能列出全部內容(我確實嘗試編寫過)。

數據科學是關於如何處理數據、獲取知識,並用知識完成以下任務的過程:

● 決策。

● 預測未來。

● 理解過去或現在。

● 創造新產業或新產品。

本文將討論數據科學的各種方法,包括如何處理數據、探尋洞察,並利用這些洞察做準確的決策和預測。

數據科學也是利用數據獲取之前未曾想到的新見解的科學。

舉個例子,假設你和其他3個人坐在會議室,你們需要根據數據做出一個決定。目前已經有4種觀點,你需要使用數據科學的方法提出第5個、第6個,甚至第7個觀點。

數據科學不是取代人類大腦,而是和人類大腦一起工作。數據科學也不應該被認為是終極解決方案,它僅僅提供了一個富有見地的觀點,也僅僅是一個觀點而已,但它值得在會議桌上擁有一席之地。

1.1.2 為什麼是數據科學

很明顯,我們在數據時代擁有過剩的數據。但為什麼數據科學能夠作為一個新詞彙出現呢?我們過去使用的數據分析方法出了什麼問題?

首先,在數據時代,數據通過各種來源以各種形式被收集,且很多是無組織數據。

巨大的數據量使得傳統的人工方式已經無法在合理的時間內完成數據分析。數據會缺失、不完整,甚至完全錯誤。

很多時候,數據的尺度不同導致對數據難以進行對比。

比如在分析二手汽車價格時,一個特徵是汽車製造年份,另一個特徵是汽車行駛里程數。

只有進行數據清洗之後,數據中蘊含的關係才會越來越明顯,深埋在數兆行數據中的知識才能顯露出來。

數據科學的主要用途之一是使用清晰的方法和過程,發現並利用數據中蘊含的關係。

我們之前從歷史的角度討論了數據科學,下面我們用幾分鐘時間,通過一個簡單的例子,討論數據科學在當今商業中扮演的角色。

1.1.3 案例:西格瑪科技公司

西格瑪科技公司CEO Ben Runkle正在解決一個大問題。

他的公司正在不斷失去老客戶,他不知道背後的原因,但必須儘快採取行動。同事告訴他,公司必須開發新功能和新產品,並鞏固現有技術,這樣才能降低流失率。

為了保險起見,他請來了首席數據科學家Jessie Hughan博士。Hughan博士並不認為新產品和新功能能夠挽救公司。

相反,她在分析了歷史客戶服務記錄後,向Runkle展示了最近幾天的記錄和令人吃驚的發現:

“……不確定如何導出,你呢?”

“創建新列表的按鈕在哪裡?”

“等等,你真的知道滾動條在哪裡嗎?”

“如果今天無法解決,它將給我帶來大麻煩……”

很明顯,用戶在使用現有UI/UX時遇到了麻煩,而不是因為新功能的缺失!

Runkle和Hughan組織員工對UI/UX進行了重要改善,西格瑪公司的銷售額也達到了前所未有的高度。

當然,這個例子的分析過程過於簡單,但它揭示了一個觀點。我們喜歡將Runkle這樣的人稱為司機。

今天,許多嚴重依靠直覺的CEO希望快速做出決定,並嘗試所有的方案,直到找到答案。

Hughan博士則具有分析能力。

她和Runkle一樣希望解決問題,但她的策略是從用戶產生的數據中尋找答案,而不是依靠感覺。

數據科學正是利用這樣的分析能力,幫助“司機”做決定。

這兩種思維方式在企業中都有用途。然而,統治著數據科學領域的是Hughan博士的思維方式——將公司的數據作為信息源,從中得出解決方案,並一直堅持下去。

數據科學韋恩圖

一個常見的誤解是,只有博士和天才們才能掌握數據科學背後的數學和編程知識。這絕對是個錯誤!理解數據科學需要從以下3個領域開始。

● 數學/統計學:指使用方程和公式進行分析。

● 計算機編程:指通過代碼用計算機生成結果。

● 領域知識:指理解問題所處的領域(醫學、金融、社會科學等)。

圖1.2所示的韋恩圖形象地展示了這3個領域的關係,數據科學是三者的交集。

如何聽起來像數據科學家?

​圖1.2 韋恩圖

編程技術可以讓你構思和編寫複雜的機器算法。數學和統計學知識可以讓你對算法進行推理、評價和改善,以適應特殊情況。而領域知識則可以讓你將以上結果在現實中發揮價值。

雖然擁有以上3個技能中的兩個已經可以讓你足夠聰明,但這仍然不夠。試想你精通編程,並接受過正式的日間交易訓練。

你開發了一個自動交易系統,但由於缺乏數學知識而無法對算法的有效性進行評價,導致長期來看自動交易系統是賠本的。

因此,只有當你同時擁有編程、數學和領域知識3個技能,才能真正應用數據科學。

你可能好奇什麼是領域知識。它僅僅指工作中涉及的專業知識。如果讓一個金融分析師分析心臟病數據,那麼他很可能需要心臟病專家的幫助才能搞懂數字的含義。

數據科學是這3個領域的交叉地帶。

為了從數據中獲取知識,我們需要利用計算機獲取數據,理解模型背後的數學含義,以及最重要的——理解分析結果應用的場景,包括數據展示等。

比如,假設我們創建了一個心臟病預測模型,那麼是否需要創建一個PDF文檔或APP應用程序,使得只需輸入一些關鍵數字就能得到預測結果?以上是需要數據科學家回答的問題。

本文將深入討論計算機程序和數學。領域知識則來自於數學科學實踐和學習他人的分析案例

1.2.1 數學

很多人不喜歡聽數學相關的東西,他們會附和著點點頭,以掩飾對這個主題的不屑。本文將引導你學習數據科學必備的數學知識,特別是概率和統計學,我們將用它們創建模型。

數據模型指數據元素之間有組織的、正式的關係,通常用來模擬現實世界的某個現象。

我們還會用數學公式表示變量間的關係。作為前數學家和現任數學教師,我理解學習這些內容的困難程度,並將盡最大的努力清晰地講解所有內容。

在數據科學的3個技能中,數學讓我們擁有從一個行業跨到另一個行業的能力。掌握了數學理論,我們就可以將為時尚界打造的模型轉變成金融模型。

案例:產卵魚—幼魚模型

在生物學中,我們使用“產卵魚—幼魚模型”和其他模型一起評價物種的健康程度。

該模型描述了單位動物群體中含有的健康父母和新生後代間的關係。

在圖1.3中,我們可視化展示了三文魚產卵魚和幼魚之間的關係,原始數據來自一個公開數據集。

如何聽起來像數據科學家?

​圖1.3 對產卵魚—幼魚模型的可視化

我們可以明顯地看出兩者之間存在某種程度的正相關(兩個指標同時增長)。

但如何才能量化這種關係呢?

比如,已知種群中產卵魚的數量,我們如何預測種群中幼魚的數量呢?反之也一樣。

通常來講,模型允許我們通過一個變量得到另一個變量。比如:

幼魚=0.5×產卵魚+60

假設我們已知某三文魚群中含有1.15產卵魚(單位:千),那麼根據以上公式,我們有:

幼魚=0.5×1.15+60

幼魚=60.575

這個結果有助於判斷種群的健康變化。通過模型,我們可以觀察兩個變量之間的關係和變化趨勢。

模型有很多種,比如概率模型和統計模型。這些模型又都屬於一個更大的範式——機器學習。它們的核心思想是利用數據找出最佳的模型,使得我們不再依賴人類的直覺,而是依賴數據做出判斷。

本例的目的是展示如何使用數學方程表示數據元素間的關係。事實上,這和我使用的三文魚數據沒有任何相關性。

在本文中,我們還將研究營銷資金、情緒數據、飯店點評等不同數據集,以便讓你儘可能地接觸不同的領域。

數學和代碼是數據科學家得以居身幕後,將自身技能應用於任何地方的工具。

1.2.2 計算機編程

讓我們說實話吧,你可能認為計算機比數據更酷。沒關係,我不怪你。新聞中很少出現數學新聞,正如很少出現純技術新聞一樣。

打開電視,你不會看到素數的最新理論,相反,你看到的是新款手機拍攝的照片比之前更好的報道。

計算機語言是關於如何和機器交流,讓機器執行人類命令的語言。和書可以用多種語言寫一樣,計算機也有多種語言進行交流。

很多計算機語言都有助於我們研究數據科學,比如Python、Julia和R。本書將專注Python。

1.2.3 為什麼是Python

我們選擇Python有很多理由,包括以下幾個。

● Python的閱讀和編寫極其簡單,即使你從來沒有寫過代碼,也能快速地閱讀和理解本書的例子。

● Python是生產和學術研究中最常見的語言之一(事實上也是增長最快的語言)。

● Python有龐大而友好的在線社區,這意味著只需簡單搜索就能找到問題的答案。

● Python有內置的數據科學模塊,既適合數據科學家新手,也適合有經驗的數據科學家。

最後一條是我們專注Python最重要的原因。

Python內置的模塊不僅功能強大,而且很容易安裝。

Python練習

在深入學習Python之前,最好先熟悉一下必備的編程知識。

在Python中,我們用變量作為對象的佔位符。我們重點關注以下幾種變量的類型。

● 整型。比如:3,6,99,−34,34,11111111。

● 浮點型(指有小數點的數值)。比如:3.14159,2.71,−0.34567。

● 布爾型(指真或假)。命題“星期六是週末”是真命題。命題“星期五是週末”是假命題。命題“圓周率等於圓周長除以直徑”是真命題。

● 字符串(指由文本或單詞構成的類型)。“我喜歡漢堡”“Matt棒極了”,每條推文是一個字符串。

● 列表(指由多個對象組成的集合)。比如:[1, 5.4, True, ‘Apple’]。

我們還需要理解一些基本的邏輯運算符。請牢記,這些運算符的計算結果是布爾型,即真(True)或假(False)。下面來看幾個例子。

● ==(如果兩邊的值完全相等,則為真;反之為假)。3 + 4 == 7(真),3 – 2 == 7(假)。

● <=(如果左邊的值小於或等於右邊的值,則為真;反之為假)。3 <= 3(真),5 <= 3(假)。

● >(如果左邊的值大於右邊的值,則為真;反之為假)。3 > 5(假),5 > 3(真)。

● >=(如果左邊的值大於或等於右邊的值,則為真;反之為假)。3 >= 3(真),3 >= 5(假)。

用Python編寫代碼時,我們使用井號(#)表示註釋,註釋不會被當作代碼處理,僅作為用戶閱讀代碼的參考。井號(#)右邊的任何信息都是被執行的代碼的註釋。

1 案例:簡單的Python代碼

在Python中,我們使用空格或製表符表示隸屬於其他行的代碼。

請注意if語句的使用,它和你想要表達的意思完全一致,即當緊跟在if後的命題為真時,if語句下縮進的代碼將被執行,如下所示。

如何聽起來像數據科學家?

由於print語句前有縮進,所以代碼print"True!"隸屬於if x + y == 15.3。這意味著print語句只有在x + y等於15.3的情況下才會被執行。

列表類型變量可以保存不同數據類型的對象,比如變量my_list含有1個整型、1個浮點型、1個布爾型和1個文本型對象。

如何聽起來像數據科學家?

在以上代碼中:

● 指令len用於計算列表的長度(結果為4)。

● Python的索引以0為起始,而不是1。事實上,大部分計算機程序都從0開始計數。如果要得到列表的第1個對象,需要使用索引0;如果要得到列表的第95個對象,需要使用索引94。

2 案例:分析一條推文

以下是更多的Python代碼。在本例中,我們將分析一些含有股票價格信息的推文(本書中一個重要的案例是根據社交媒體情緒變化,預測股票價格的波動)。

如何聽起來像數據科學家?

下面對以上代碼片段逐條進行解釋。

(1)用變量tweet存儲推文信息:RT @robdv: $TWTR now top holding for Andor, unseating $AAPL。

(2)word_in_tweet變量用於對原始推文進行切分(將文字隔開)。如果輸出該變量,你將看到以下內容:

如何聽起來像數據科學家?

(3)接下來使用for循環,對文本列表進行迭代,逐個查看列表中的對象。

(4)然後用if語句,判斷推文中的每一個詞是否包含$符號(人們在推文中使用$表示股票行情)。

(5)如果if語句的運行結果為真(即推文中包含$符號),則輸出該詞。

這段代碼的運行結果如下:

如何聽起來像數據科學家?

它們是這條推文中僅有的兩個含有$符號的單詞。

凡是本書中出現的Python代碼,我會盡量解釋清楚每一行代碼的用途。

1.2.4 領域知識

正如之前所說,領域知識主要是瞭解你的工作所涉及的特定領域的專業知識。

如果你是分析股票市場數據的金融分析師,你就需要了解該行業的專業知識。

如果你是準備報道世界發展指數的新聞工作者,那最好找一個該領域的專家進行諮詢。本書將演示多個領域的案例——醫學、營銷和金融,甚至包括UFO!

但是,這是否意味著如果你不是醫生,就不能分析醫學數據呢?當然不是!

卓越的數據科學家能將他們的技能應用在任何領域,包括他們不熟悉的領域。數據科學家可以適應新領域,並在分析完成後持續貢獻價值。

領域知識中最重要的部分是演示能力。你的聽眾決定了演示的內容,你的分析結果僅僅是交流的工具。

即使你預測市場趨勢的方法準確率高達99.99%,但如果你的程序沒有被採用,那它就沒有任何價值。

同樣地,如果分析結果不適合使用場景,它也沒有價值。​

如何聽起來像數據科學家?

​《深入淺出數據科學》

[美] 斯楠·奧茲德米爾(Sinan Ozdemir) 著

本書可以幫助讀者把數學、編程和商業分析聯繫起來。通過學習這本書,讀者有信心探究和解答覆雜的數據科學問題,從抽象的原始的統計,發掘出切實可行的觀點和想法。本書適合缺乏數學知識的編程人員,或者是擁有數學技能、想投身數據科學領域的人士閱讀使用。​

點擊https://mp.weixin.qq.com/s/6GIDZrsxu6vycvxuV4mkjg,購買《深入淺出數據科學》


分享到:


相關文章: