數據科學專業是否會“被自動化”?
前幾天,我讀了一篇關于Uber希望如何賦予其每位員工數據科學力量的文章。以下引文特別引人注意:
- “預測平臺的宏偉愿景是只需按一下按鈕即可提供預測,完全不需要預測專家。用戶唯一需要的輸入是歷史數據,無論是CSV文件還是查詢鏈接的形式,以及預測范圍。您想預測多遠?其他一切都完全在引擎蓋下完成。” — Uber 數據科學總監Franziska Bell
這讓我思考,預測真的可以商業化到這種程度嗎?微軟,谷歌和亞馬遜也一直在努力使他們的機器學習解決方案更加“drag and drop”他們各自的云客戶,因此Uber絕對不是唯一的雄心壯志。
貝爾的話引出了兩個截然不同的結論-要么Uber的預測平臺非常出色,要么他們對預測未來的挑戰過于隨意。為了好玩,讓我們嘗試各種可能性:
Uber的預測平臺非常出色-只需按一下按鈕,Uber就能做些什么來產生預測,而唯一需要輸入的是目標變量的歷史數據?他們必須能夠:
- 擁有數據并知道是否要包含任何和所有相關功能。您需要外生變量來構建模型,尤其是當您嘗試預測復雜的事物時。 Uber不僅必須在生成預測之前隨時提供所有可用數據,還必須知道要包括哪些功能以及如何轉換每個功能。
- 它還必須能夠比較和對比各種預測算法(線性回歸與隨機森林與神經網絡)。并能夠為每種特定算法選擇最優超參數。
- 預測還必須進行回測(以減輕從模型中取出模型時發生爆炸的風險),Uber需要能夠與用戶溝通模型所基于的假設以及在何種條件下可能會崩潰。
達成這些要付出很多,只要他們能做到,就對他們表示敬意。
但是,如果Uber過于隨意,該怎么辦–相反的觀點是,該預測平臺只是ARIMA model 或 LSTM,可以根據對目標的以往觀察來預測未來。對于某些應用程序,這是可以的。
但是僅使用目標變量的滯后作為特征意味著可能會錯過關鍵的外生關系,這將使模型嚴重不適合并易于表現不佳。
對其保留一定態度
我個人對Uber的“預測即服務”目標持懷疑態度。我可以理解,Uber是否允許其員工使用預先構建的模型“按需”預測某些關鍵業務指標,這些模型已經過數據科學團隊的廣泛研究和完善。但是我不認為這就是弗朗茲卡·貝爾(Franziska Bell)的意思。看來她的目標是能夠通過按一下按鈕就幾乎可以預測所有事物。
這是一個非常困難的問題,幾乎是不可能的問題。讓我們逐步完成預測過程的每個步驟,以更好地了解可以輕松實現哪些自動化。
明確定義問題-需要預測什么?
沒有要解決的問題,建立模型并進行預測就沒有多大意義了。因此,第一步是弄清楚我的問題是什么,我可以預測該問題的哪些方面使問題更加清晰?
這通常不像乍看起來那樣明顯。自從Uber入手以來,讓我們繼續以它為例。假設我們是 Uber的分析師,我們的工作是預測明年舊金山 Uber的需求。我們能否僅將Uber需求的歷史時間序列提供給預測平臺并加以處理?
可能不是。我的意思是我們的老板所說的需求是什么意思?可能是以下任何一種:
- 明年的車手人數。
- 明年的總騎乘次數,即騎乘人數乘以每名騎乘人的騎乘次數。
- 車手在明年支付的金額,即乘客人數乘以每位乘客的乘車次數乘以每位乘客的平均價格。
因此,圍繞我們到底需要預測什么是不明確的。您是否注意到,在充實需求定義時,我們需要逐步預測更多變量?
甚至車手本身的數量也是許多因素的相互作用:
- 可用駕駛員的數量-駕駛員的數量和騎手的數量相互之間具有循環效應,Uber雇用的駕駛員越多,使用其平臺的騎手就越多(這被稱為網絡效應)。
- 競爭格局(Lyft,出租車,踏板車等)如何隨著時間變化。這包括競爭者的數量,每個競爭者的營銷和定價策略等。
因此,看似簡單的問題最終變得非常復雜且難以自動化。如上所述,正確的預測模型通常是多個單獨模型和預測的集合。如果我們沒有考慮到足夠多的變量,我們的模型將錯過關鍵的因素。而且,如果我們嘗試在集成中包含太多模型和/或預測,我們將迷失在復雜的迷宮中。
弄清楚要預測的內容并不容易,作為一名負責充實模型各個組成部分的架構師,經驗豐富的數據科學家可能是無價的,因此可以跨越太簡單和太復雜之間的界限。
識別有效的數據(并找到它)
一旦確定了要預測的變量并為我們的模型整體繪制了簡潔的流程圖,我們就準備好了嗎?錯,首先我們需要弄清楚我們是否擁有所需的所有數據。在最樂觀的情況下,我們所有的數據都可以使用,清洗并準備放入數據庫,但是在現實世界中很少有這樣的事情發生。
一旦知道了要預測的內容,就需要確定候選特征集,以用于生成預測。通常,這些數據并不容易獲取-相反,數據科學家的工作是找出從哪兒、怎樣獲取這些數據。如果不可能直接觀察,那么如何用實際可用的東西來替代它。
這一步也很難自動化。除非公司的數據湖像Google一樣廣闊和深厚,否則他們將需要數據科學家智能地、創造性地搜尋世界范圍內的有效數據。
建立預測—特征工程和選擇正確算法
這部分可能更易于自動化。假設我們已成功獲取并清除了所有數據(不容易做到),那么現在就可以構建模型了。
雖然我認為經驗豐富的數據科學家或統計學家在選擇正確的模型并正確設置其參數方面是非常寶貴的專家,但我也知道,在這里絕對有可能采用暴力,自動化的方法。
您甚至可能會爭辯說,我們不必為了選擇最佳模型而運行和測試每個模型。相反,我們可以假設使用XGBoostor或神經網絡為我們提供足夠好的結果,前提是它們經過適當的訓練且不會過度擬合。
另外,上述兩種算法都有效地使特征工程過程自動化。例如,給定足夠的神經元和層數,神經網絡可以輕松捕獲特征與目標之間的任何非線性關系。因此,無需顯式地包含特性的日志和指數或特性之間的交互作用。
當然,這種自動化需要付出一定的代價。可解釋性低-換句話說,我們不知道是什么在推動我們的預測。例如,在線性回歸中,β系數A告訴我們特征A增加1單位將始終對我們的預測產生確切的影響;在神經網絡中,我們不知道特征A的增加如何影響我們的預測。
在當今的大數據和復雜數據世界中,模型的可解釋性似乎是一種很好的選擇,而不是必須具備的。但我認為,在更簡單,更易解釋的模型不花很多錢的情況下(就預測的準確性而言),保持簡單是明智的。
知道模型何時可能斷裂
賦予每個人預測能力一種被低估的風險是,沒有事先預測經驗的人對無效或過度擬合模型可能造成的破壞,缺乏健康的尊重。
從行為上講,當我們看到定量準確的預測時,就會陷入一種錯誤的安全感(我們對數字和數學的精度感到滿意)。 但是,經驗豐富的數據科學家會知道質疑模型的假設,并認識到模型在什么條件下可能表現不佳。
這是另一個令人費解的模型的缺點-如果我們看不到推動我們預測的關鍵關系,那么很難知道我們處于一個這些關系不再有效的環境中。
我認為,這很難自動化。總有一份工作是為那些既了解建立模型和做出預測的好處和風險的人準備的。
結論
一切可以自動化的東西似乎最終都會實現。 因此,當數據科學和機器學習的某些方面在某個時候實現自動化時,我們不應感到驚訝。 相反,我們應該專注于難以自動化的數據科學領域,并將在可預見的未來繼續增加價值:
- 了解您業務的主要驅動因素,以及影響這些驅動因素的因素。
- 知道如何適當地確定范圍和設計模型,以使其既不會太簡單,不足或太復雜。
- 知道如何挖掘有洞察力的數據,這些數據可用于提供數據科學模型。
- 建立也“足夠好”的可解釋模型。
- 能夠確定您的模型何時以及在何種情況下可能崩潰并產生不良的預測。
當然,這些只是我的想法。 我也很想聽聽您的聲音。 Cheers!
本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。