當前位置:
首頁 > 最新 > 一個數據科學家的工作流程圖 by 小序

一個數據科學家的工作流程圖 by 小序

一個專業選手和業餘選手最大的區別不是智商,而是專業選手在解決問題時有一套系統的工作流程和完善的知識體系,使得他每一步的行動不是想到什麼就幹什麼。一個數據科學家的工作流程簡而言之分成以下五個步驟:清晰地定義問題,寫出工作陳述理解數據數據清洗與數據探索性分析特徵選取與特徵工程建模、調參與公司各個部門溝通你的發現包括:決策者、股東、商業分析師、工程師、產品經理和設計師完善公司的數據科學基礎設施

一、定義問題

這是最重要也是最關鍵的一步,就好像任何一個軟體開發生命周期的第一步都是要做需求分析。在開始實實在在地coding前,認真地寫說明文檔絕不是浪費時間。經常犯的錯誤是沒有理解商業問題,理解業務需求就匆匆開始建模和編碼。常見的商業問題可以舉幾個例子:什麼指標可以較好地某個公司的股價?哪些指標可以較好地預測某個網站的流量?客戶可以被細分成哪幾類?什麼樣不同的營銷策略對他們有用?做數據分析不是為了做而做,如果任何數據分析不能給公司盈利帶來幫助,不能緊貼業務的需求,那都是YY。通常,我們需要寫一個工作陳述。這也是保護自己的一個重要策略。在陳述中我們要清晰地定義自己的問題、目標,現有的數據能讓我們做到什麼,不能讓我們做到什麼。即使項目在某種程度上失敗了,我們也能避免來自團隊其他人的無端指責。不求有功,但求無過。

二、觀察數據

這是絕對不能跳過但大多數人都跳過的一步。所謂垃圾進,垃圾出。開始大幹特干前,問問自己:我是如何獲得這些數據的?如果是採樣,採樣嚴重有偏嗎?數據的信噪比如何?這個數據集維多多嗎?數據量大嗎?需要傳統方法解決還是要上重武器(比如Hadoop)存不存在Unique Identifier?缺失數據多嗎?為什麼會有這些缺失值?

三、數據清洗

現實世界的數據是亂糟糟的。工作中絕大多數時間也花在這個部分。關於數據清洗可以採取以下這些策略:先在Excel中打開看一下大概的情況,到底有多亂,缺了哪些值?有哪些亂碼?簡單地Plot一下數據,看一下大致的分布情況。畢竟統計學的所有核心都是分布。問自己幾個簡單的問題,利用自己的直覺和現實經驗回答一下,再觀察一下和數據展示的情況是否一致。如果不一致是哪裡出了問題,或者成為新發現的重要渠道。在這個階段需要形成一種對數據視覺上的直覺。那幅圖是怎麼樣的?當然,你心裡還要產生各種需要驗證的假說。

四、特徵工程

特徵工程和特徵提取是成功建模的基石。它考察你在多大程度上理解商業問題的本質,這個部分其實更考驗人對人性、心理、市場和經濟學規律的理解。但是重要程度遠比你選取哪個機器學習的演算法、統計技巧甚至使用哪個優秀的演算法重要得多。這一步做法了,你模型表現能達到的上限也就決定了。

五、建模

建模這一塊現在越來越傻瓜化了。很多現成的包也開發的很成熟。這部分的難點是調參!我們需要不斷地在cross validate中,榨乾每個模型的所有剩餘價值。

六、輸出價值

最後,你需要輸出你的工作價值。通常你的工作價值分成兩種:對人的和對機器的。對人的就是你需要說服你的上司或者團隊同事你的建議是靠得住的,你的發現對公司決策有幫助的。做好這一點的關鍵是你需要有很強的同理心,站在他人的角度思考問題,畢竟每個人所受的訓練不同,所站的立場不同,你對一個產品經理、一個設計師和一個商業分析師講的三個故事很有可能需要特別定製。對機器的就是你開發的這套流程(pipeline)能讓後來者使用,提升大家的工作效率。這一部分失敗原因通常有三個:程序本身的說明文檔不夠有解釋性導致後來者很難使用程序本身有問題程序不夠模塊化,導致碰到新問題時無法改進

七、迭代、迭代再迭代

第一版結果可以糙但是要快,避免更大的投入,然後做無用功。比如你很有可能發現你手裡拿到的數據全都是雜訊。如果你太追求完美主義,很有可能讓自己做無用功。能自動化盡量自動化,讓程序模塊化並且易於修改。

apple用戶打賞

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 沈序 的精彩文章:

TAG:沈序 |