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