超級干貨 :一文總覽數據科學全景:定律、算法、問題類型...
Pradeep Menon是一位在大數據,數據科學,數據架構領域擁有豐富經驗以及影響力的專家。這是他今年所撰寫的簡述數據科學系列文章中的第一篇,主要介紹數據科學中的基本定律、常用算法以及問題類型,讀者可以從中一窺數據科學的全景。
2016年,英國數學家,樂購俱樂部構架師Clive Humbly提出“數據是新能源”這樣一個說法。他說:
“數據是新能源。它擁有極高的價值,卻需要經過提煉才能使用。就像石油一樣,必須被轉化為氣體、塑料或者化學品等,才能發揮出其實際的作用; 因此,數據只有被分解和分析之后才具備價值。”
iPhone革命,移動經濟的增長,為大數據技術的發展創造了一個完美的契機。在2012年,HBR(Harvard Bussiness Review)發表過一篇文章,將數據科學家推到了風口浪尖上。這篇名為《數據科學家: 21世紀最性感的職業》(Data Scientist: The Sexiest Job of the 21st Centry) ( https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century) 給這群“新人類”打上了標簽: 一個數據黑客、分析師、傳播者和信譽顧問的混合體。
每個公司目前都在嘗試變得更為“數據驅動(data-driven)”。機器學習技術在其中提供了很大的幫助。這其中很多的東西非常專業,很難理解。因此,本系列文章將會簡化數據科學。作者嘗試參照斯坦福大學的課程以及教科書統計學習導論(Introduction to Statistical Learning) (http://www-bcf.usc.edu /~gareth/ISL/ ),將數據科學以一種簡單容易理解的形式呈現給讀者。
數據科學是一個多學科領域,主要包括:
- 商業知識 (Business Knowledge)
- 統計學習又名機器學習 (Statistical Learning aka Machine Learning)
- 電腦編程 (Computer Programming)
該系列的重點是簡化數據科學中機器學習方面的知識。本文將首先介紹數據科學中的基本定律,常用算法以及問題類型。
核心定律

(圖片轉載自 (Menon, 2017))
數據是一項戰略資源:這一概念是一種組織思維。問題是:“我們是否正使用我們所收集和存儲的全部數據信息?我們能否從中挖掘有意義的資源?”我非常確定,這些問題的答案都是“否”。以云端為基礎的公司都依賴數據驅動。它們勢必將數據視為戰略性資源。但這一觀念并非適用于大多數機構。
知識攝取的系統化流程:挖掘數據需要一套有條理的流程,這其中包括明確的步驟,以及每一步清晰可實現的目標。就好比跨行業數據挖掘標準流程(CRISP-DM) (https://en.wikipedia.org/ wiki/ Cross_Industry_Standard_Process_for_Data_Mining)。
與數據共眠:相關機構應當投資熱衷于數據的專業人士。將數據轉化為資源的不是煉金術。這個世界也沒有萬能的煉金術士。他們需要的是懂得數據價值,能識別和創造數據資源的信仰者。以及可以將數據,科技以及金融這些領域鏈接在一起的專業人才。
接受不確定性:數據科學不是一顆銀色子彈(特效武器)。它也不是水晶球,可以用來預言未來。像報告和關鍵績效指標一樣,它是一個決策推動者。數據科學是一個工具,而不是一種達到目的的手段。它不是絕對的,而是屬于概率的范疇。管理層和決策層需要接受這個事實。他們需要將被量化的不確定性加入到決策過程中。只有當相關機構采取實驗的文化,并且能夠從失敗中迅速學習,才能立足于不確定性之上成長。
BAB定律(Business-Analytics-Business):我認為這是最重要的一條定律。多數數據科學的文獻都將重點放在模型和算法上。方程式本身缺乏商業背景。BAB則是突出其中的商業部分。把算法置于商業背景中是至關重要的。定義商業問題,用分析來求解,最后將答案集成到商業流程中。也就是所謂的BAB:商業-分析-商業,這么一個過程。
流程

(圖片轉載自 (Menon, 2017))
參考第二定律,這一段將會把重點放在介紹數據科學中的流程部分。以下是一個典型數據科學項目中的各個階段:
1. 定義商業問題 (Define Business Problem)
愛因斯坦曾說:“凡事保留其本質,力求最簡”。這個引用可以說是定義一個商業問題的關鍵。問題的描述需要精確的加工,必須明確定義出所需達成的目標。根據我的經驗,業務團隊過于忙于手頭的任務,卻忽略了需要應對的挑戰。頭腦風暴會議,研討會以及訪談都可以幫助發現這些挑戰,并且制定假設。舉個例子,我們假設一家電信公司由于客戶群的減少導致同比收入下降。在這種情況下,商業問題可以定義為:
- 公司需要通過開發新客戶群,同時減少客戶流失,來擴大客戶基礎。
2. 分配機器學習任務 (Decompose To Machine Learning Tasks)
定義好的商業問題需要被分配為各項機器學習任務。就以上例子來說,如果公司需要通過開發新市場,減少客戶流失,來擴大客戶基礎,那么我們如何將其分解為機器學習問題?以下是一個分解方案:
- 減少客戶流失x%。
- 確定目標營銷的新客戶群。
3. 數據準備工作 (Data Preparation)
制定了商業問題,并且將其分解為機器學習任務之后,我們需要深入了解其相關數據,以便制定適當的分析策略。需要注意數據的來源,數據的質量,以及數據的偏差等主要事項。
4. 探索性數據分析(Exploratory Data Analysis)
就像宇航員探索宇宙一樣,一位數據科學家需要探索數據模式中的未知,深入了解其隱藏的特征,并記錄新的發現。探索性數據分析(EDA)是一項扣人心弦的任務。我們能夠更好地了解數據,調查其細微的差別,發掘隱藏的模式,開發新的特征,并且制定建模策略。
5. 建模 (Modelling)
在探索性數據分析之后,我們將進行建模。在這個階段,我們針對具體的機器學習問題,選擇最適用的算法,比如常見的回歸(Regression)、決策樹(Decision Tree)、隨機森林(Random Forest)等算法。
6. 部署和評估 (Deployment and Evaluation)
最終,我們部署好建立的模型,并對它們進行不斷監測,觀察他們在現實中的表現,并進行有針對性的校準。
通常,建模和部署部分只占全部工作的20%,剩余的 80%的工作是對數據的研究以及深度的了解。
機器學習的問題類型

(圖片轉載自 (Menon, 2017))
簡單來說,機器學習被分為兩大類:監督學習和無監督學習。
1. 監督學習(Supervised Learning)
監督學習任務擁有一個事先定義好的目標。建模者有針對性地觀察并且影響機器學習模型的生成的過程,以實現其特定的目標。監督學習可以進一步分為兩類:
回歸 (Regression):
回歸模型在機器學習任務中非常常見,用于估計和預測一個數值變量。舉兩個例子:
- 下個季度潛在收入的預估是多少?
- 明年可以結交多少筆交易?
分類 (Classification):
顧名思義,分類模型把目標分開并歸整為幾個特定的類型。它適用于所有類型的應用。舉幾個典型的例子:
- 使用分類模型過濾垃圾郵件,將收到的電子郵件基于某些特征分類為垃圾郵件和可接收郵件。
- 流失預測是分類模型的另一個重要應用。電話公司普遍使用流失模型(Churn Model)來預測用戶是否會流失(即停止使用服務)。
2. 無監督學習(Unsupervised Learning)
無監督學習沒有指定的目標,因此產生的結果有時候會難以解釋。無監督學習任務有很多種類型。最常見的幾個是:
- 聚類(Clustering):通過相似度把目標歸類在一起。比如客戶細分就是使用聚類算法。
- 關聯(Association):關聯算法用來尋找相互匹配的產品。購物籃分析(Market Basket Analysis)就是使用關聯算法將產品捆綁銷售。
- 鏈路預測(Link Prediction):鏈路預測用于查找數據項之間的連接。比如 Facebook,Amazon和Netflix這些網站大規模地使用鏈接預測算法來為我們推薦相關朋友,熱衷商品和的電影。
- 數據簡化(Data Reduction):數據簡化方法用于減少數據集中特征的數量。它將大量屬性的大型數據集用較少的屬性呈現出來。
機器學習任務到模型到算法
一旦將業務問題分解為機器學習任務,一個或多個算法可以解決給定的機器學習任務。通常,一個模型是使用多個算法進行訓練的。選擇提供最佳結果的算法或算法集合進行部署。
Microsoft Azure Machine Learning有30多種預先構建的算法,可用于訓練機器學習模型。

(圖片轉載自 (Menon, 2017))
Azure Machine Learning cheat-sheet可以幫助你探索這些算法。
結論
數據科學是一個非常廣泛的領域。它扣人心弦,是一門科學,亦是一門藝術。在這篇文章中,我們僅僅探索了冰山的一角。如果在不懂得其原理“why”的情況下去探索它的方法“how”是沒有意義的。在隨后的文章中,我們將繼續探討機器學習的方法“how”。




























