寫給初學者的數據科學 Pipeline 指南

寫給初學者的數據科學 Pipeline 指南

9 人贊了文章

也許你並不會相信,你其實和數據並沒有什麼差異。不過,站在數據的角度設身處地去思考,你就會找到此中的緣由。

曾經有個男孩,他的名字叫做「數據」。終其一生,他都在努力去理解自己的目標。我有怎樣的價值?我能給世界帶來如何的影響?我又從何而來呢?你找到自己與「數據」的共性了么?這些問題一直縈繞在他的腦海中,幸運的是,有一天「數據」他終於找到了一個答案,並憑此完成了一次偉大的轉變。

這一切都要從「數據」流過一行又一行,然後偶然間遇到了那個看起來怪異卻又有趣的管道(Pipeline )時說起。這管子的一端是入口,另一端則是出口,管身上面標記著「O.S.E.M.N」五個顯眼的字母。出於好奇,「數據」決定鑽進其中,一探究竟。長話短說……流進去的是數據,而流出來的是見解

提醒:

本文將向讀者們簡要介紹典型數據科學的應用流程pipeline。從搞清楚你的業務問題,到創造一些可以執行的見解、分析。別擔心,後文內容很輕鬆,並沒有閱讀門檻!

數據科學就是OSEMN

你很贊(awesome),我很贊,而數據科學也好贊(OSEMN)(譯者註:英文中 OSEMNawesome 讀音相似)你可能要問,為什麼說數據科學很贊?因為作為一個有理想有抱負的數據科學家,你能夠憑藉數據科學,獲得磨練自己身體中潛藏的巫師以及偵探天賦的機會這裡我指的巫師技能,是你自動預測事物發展的技巧!而偵探技能,則是你能夠在數據中尋找出未知模式、找到趨勢蛛絲馬跡的能力!

了解數據科學pipeline的整個工作流程,是邁向業務理解、問題解答的關鍵一步。如果數據科學看似繁雜的生產線流程讓你望而卻步,那麼話不多說,這篇文章送給你恰到好處!我找到了數據科學家希拉里·梅森Hilary Mason)和克里斯·威金斯Chris Wiggins)總結出的一個很簡單的縮寫——O.S.E.M.N.,它適用於整個數據科學生產線。

OSEMN pipeline:

  • O —— 獲取(Obtaining)數據。
  • S —— 清洗(Scrubbing)數據。
  • E —— 探索(Exploring)數據,通過數據可視化等方式,找到潛藏的模式和趨勢。
  • M —— 建模(Modeling),對數據進行建模,會給我們帶來巫師般的預測能力。
  • N —— 解釋(Interpreting)數據。

業務問題

所以,在開始整個osem pipeline之前,我們必須要考慮的最關鍵也最重要的一步,就是理解我們究竟想要解決什麼問題。再強調一次,在使用「數據科學」之前,我們必須提前考慮好自己究竟想解決什麼。如果你腦子裡想的是個小問題,那麼相應的,你就只會得到一個小的解決方案。而如果你有個很大的問題要解決,那麼也就很可能會找到很大的解決方案。

試問自己以下幾個問題:

  • 我們該怎樣把數據轉化成鈔票?
  • 我想憑藉這些數據產生哪些影響?
  • 我們的模型能帶來怎樣的商業價值?
  • 它是否會幫我們節省很多的資金?
  • 我們該採取哪些措施,來讓自己的業務能夠更有效地運轉?

Show me the money!(Show me the money,星際爭霸中,調錢的秘籍,是一個經典的遊戲 Meme。)

了解這一基本概念對你大有裨益,它會幫助你在走向成功、成為「數據科學家」的道路上邁開更大的步伐。無論如何,這都是你必須要做的重要一步!無論你的模型預測得有多準確,無論你獲得了多少的數據,甚至無論你的pipeline究竟有多麼 OSEMN(多麼棒),你提出的問題的好壞決定了解決方案、可行解的質量。

所謂優秀的數據科學,重要的是你針對數據所提出的問題,而不是該怎樣進行數據管理和分析。——萊利·紐曼(Riley Newman,Airbnb數據科學家)

第一步:獲取數據

正所謂巧婦難為無米之炊,對於一位數據科學家來說,沒有數據就意味著他什麼也做不了。

根據經驗,在獲取數據的時候,你必須要思考一些事情。你需要辨識出所有的可用數據集(它們可以來自互聯網,或是外部或內部的資料庫)。你還需要把數據提取為可用的格式(包括csv、json、xml 等)。

所需技能:

  • 資料庫管理:MySQL、PostgressSQL、MongoDB。
  • 查詢關係型資料庫。
  • 檢索非結構化數據:如文本、視頻、音頻文件、文檔等。
  • 分散式存儲:Hadoop、Apache Spark/Flink。

第二步:清洗數據

pipeline的這一階段,需要你投入最多的時間和精力。因為你的機器學習模型最終會得到的輸出結果,取決於你輸入的數據質量。因此,假如一開始裝進去的就是垃圾,那麼吐出來的照樣也是垃圾。

目標:

  • 檢查數據:了解你所處理的每一個特徵、識別錯誤、缺失值、損壞記錄等。
  • 清洗數據:丟棄、替換、補齊缺失值或錯誤記錄。

所需技能:

  • 腳本語言:Python、R、SAS。
  • 數據處理工具:Python Pandas、R。
  • 分散式處理工具:Hadoop、Map Reduce / Spark。

那些做好準備的人,已經打贏了戰鬥的半場。—?米格爾·德·塞萬提斯(Miguel de Cervantes)

第三步:探索性數據分析

在探索階段,我們所要做的是去了解手中的數據有著怎樣的模式和價值。我們需要使用不同的數據可視化、統計測試方法,來支持自己得出的結果。這樣一來,就能夠通過各式的圖表、分析工具,來挖掘出數據背後那些隱藏的秘密。出門去探險吧!

「船停泊在港灣勢必安全,但這並不是造船的初衷。」——約翰·A·謝德(John A. Shedd)

目標:

  • 通過可視化方法、圖表尋找數據中潛藏的模式。
  • 通過統計學方法提取特徵,從而識別、測試重要的變數。

所需技能:

  • Python 包:Numpy、Matplotlib、Pandas、Scipy。
  • R 包:GGplot2、Dplyr。
  • 推論統計。
  • 實驗設計。
  • 數據可視化。

提示:

在進行分析的時候,你是否發覺自己擁有了「蜘蛛感應」,有能力去發現一些奇怪的模式或趨勢,並且總想深入求索,尋找有趣的發現!

設計思考:

大多數時候,人們總是希望通過直觀的觀察圖表,便能有所發現。不過,關鍵在於誰才是要去對數據進行解讀的最終用戶。所以,你需要留意你的受眾。

第四步:建模(機器學習)

現在,我們來到了非常有趣的一步。所謂模型,就是統計學中的一般模型。你可以把機器學習模型,想像成躺在你的工具箱里的工具。你擁有很多可供選擇的演算法,能夠用它們來輔助實現不同的業務目標。選用的特徵越好,你的預測能力也會越高。在清理數據並提取出重要特徵後,我們就可以將模型用作預測工具,從而提升業務決策的效果。

預測分析(Predictive Analytics)已經成了改變遊戲規則的關鍵所在。預測分析要做的不是回顧從前去剖析「究竟發生了什麼」,而是幫助管理人員回答諸如「下一步會是什麼?」以及「我們該怎樣應對?」的問題(摘自《福布斯雜誌》)。

佐證預測能力強大的經典案例:

沃爾瑪的供應鏈中,就藏著一個很合適的例子。沃爾瑪曾經成功預測出,在颶風季期間某一門店的草莓夾心餅乾將會售罄。通過數據挖掘,他們發現,歷史數據顯示在颶風出現前,最受消費者歡迎的產品是夾心餅乾。這聽起來雖然很瘋狂,但卻的的確確是個真實的故事。它也讓人們真切意識到,絕不要低估預測分析的力量。

目標:

  • 深度分析:創建預測模型/演算法。
  • 評估並改進模型。

所需技能:

  • 機器學習:監督學習/無監督學習演算法。
  • 評估方法。
  • 機器學習包:Python 的 Sci-kit Learn、R 的 CARET。
  • 線性代數及多元積分。

模型是嵌入在數學之中的觀點——凱西·奧尼爾(Cathy ONeil,數據科學家)

第五步:解釋(用數據講故事)

終於到了講故事的時間!這是數據科學pipeline中最重要的一步,並且是了解該如何通過溝通來解釋自己的發現。講故事是關鍵所在,所以絕不要低估它的意義。這一過程涉及到如何與其他人建立聯繫、說服他們並提供幫助。了解自己的觀眾並與他們產生聯繫,這是一門藝術,也是用數據來講故事最奇妙的一部分。

我相信講故事的力量。故事會在我們每一個人的心中,開啟一片新的天地,它會打開我們的思維,並往往會導致最終的行動。——梅琳達·蓋茨(Melinda Gates,比爾·蓋茨夫人)

在用數據講故事的過程中,情感扮演了重要的角色。人們並不會突然就奇蹟般地理解了你的發現。最好的影響別人的方式,就是通過情感來講述你的故事。作為人類,我們總會自然而然地受到情感的感染。如果你能夠挖掘到聽眾的情緒,那麼我的朋友,你就掌握了控制權。在展示數據的時候,請在腦子裡默念心理學的力量,默念「了解自己的觀眾並與他們產生聯繫,這是一門藝術,也是用數據來講故事最奇妙的一部分」。

最佳練習法:

想要加強用數據講故事的能力,我強烈建議你反覆排練。如果你是一個父親或是母親,那麼下面的建議對你來說應該是個好消息。在孩子們睡覺前,你可以試試不要再去讀蘇斯博士那些經典讀物了(希奧多·蘇斯·蓋索,較常使用蘇斯博士為筆名。是美國著名的作家及漫畫家,以兒童繪本最出名。),下次你不妨用你的數據分析結論來哄他們入睡!如果一個孩子都能理解你的解釋,那麼任何人都可以,特別是你的老闆!

如果你無法向一個六歲大的孩子解釋清楚,那麼這意味著你自己其實也並沒有真正理解。——阿爾伯特·愛因斯坦(Albert.Einstein)

目標:

  • 讓見解回歸業務問題。
  • 研究成果可視化:保持簡潔、分清輕重緩急。
  • 講述一個清晰的故事:高效地與非技術聽眾溝通。

所需技能:

  • 業務領域知識。
  • 數據可視化工具:Tablaeu、D3.js、Matplotlib、GGplot、Seaborn。
  • 溝通:演講、報告、文章。

最後一步:更新模型

別著急,到這裡,你的故事還沒有結束。模型一旦被採用,你在日後還需要根據接收新數據的頻率,來定期更新模型。也就是說,收到的數據越多,模型更新也要相應地更頻繁。舉例來講,假如你現在搖身一變成了電商巨頭亞馬遜,你為顧客推出了一個「鞋類」的這一新的購買品類。但是舊模型中並沒有這一類型,因此你需要更新模型來包含更多新的特徵。如果不這樣做,隨著時間的推移,你的模型表現就會逐步衰減退化,業務也會因此受到影響。引入新的特徵將會改變原模型的性能,這有可能是因為特徵的改變導致的,或者也可能是因為新特徵與其他特徵的協同作用造成的。

小結

綜上所述,你要做的事情如下:

  • 找到你的業務問題。
  • 獲取數據。

獲取數據、清理數據、通過可視化方法來探索數據、採用不同的機器學習演算法對數據進行建模、通過評估來解讀數據、更新模型。

請記住,我們和數據並沒有什麼區別。我們都有屬於自己的價值、目標,以及存於世間的理由。

你所面對的大部分問題,實際上都屬於工程實踐問題的範疇。即便擁有強大的「機器學習之神」的全部資源,絕大部分的影響實際上還是來自於準確提取特徵,而非多麼強大的機器學習演算法。

所以我們整個流程中的基本方法是:

1. 首先確保你的整條pipeline從頭到尾都堅實可靠。

2. 從一個合理的目標展開。

3. 直觀地理解你的數據。

4. 確保整個流程能夠保持堅實可靠。

採用這樣的方法,將很有可能幫你在很長一段時間裡都能賺得盆滿缽滿,並讓其他人感到滿意。所以……當下一次有人問你什麼是數據科學。請這樣回答:「數據科學是 OSEMN(數據科學很贊)」。

翻譯:雪曼

審校:Leo

原文:

kdnuggets.com/2018/05/b

推薦課程

campus.swarma.org/gcou= (二維碼自動識別)


關注集智AI學園公眾號

獲取更多更有趣的AI教程吧!

搜索微信公眾號:swarmAI

集智AI學園QQ群:426390994

學園網站:campus.swarma.org

weixin.qq.com/r/FzpGXp3 (二維碼自動識別)


推薦閱讀:

清明出遊大數據,盤點各類旅遊TOP10!
【實戰應用】傳統調研與數據分析的結合方式
Python爬蟲系列(二):requests基礎
sqoop簡單介紹
擔心平台跑路?讀懂這些運營數據完美避開大雷!

TAG:數據分析 | 大數據 | 數據挖掘 |