你的團隊幾個月來一直在收集數(shù)據(jù)、構(gòu)建預(yù)測模型、創(chuàng)建用戶界面,并與一些早期的用戶一起部署新的機器學(xué)習(xí)產(chǎn)品。但你現(xiàn)在聽到的并不是大家一起慶祝項目勝利的聲音,而是聽到產(chǎn)品經(jīng)理對那些早期用戶的抱怨,這些早期用戶對模型精度不滿意并開始認為“模型不起作用”。所以你現(xiàn)在應(yīng)該做什么?
我們常常在很多模式識別實驗室里給相關(guān)組織應(yīng)用機器學(xué)習(xí)算法到新產(chǎn)品見到這種情況。這不是一個容易迅速解決的問題。真實世界的機器學(xué)習(xí)模型的性能受到許多因素的影響,其中一些因素可能在控制之下,而另一些因素則可能不在控制之下。最重要的是,當試圖對真實世界的現(xiàn)象建模時,每個建模問題都有一個固有的噪聲或隨機性被混合在信號中,這使得很難理解我們使用一個預(yù)測模型真正能夠達到的準確度。再加上用戶對你的模型準確性的期望,你的數(shù)據(jù)科學(xué)團隊就突然陷入了一個棘手的境地,并試圖找出從哪里開始解決問題。
1. 了解要解決的問題
首先要確保團隊對他們試圖用模型解決的用戶問題有很好的理解。令人驚訝的是,數(shù)據(jù)科學(xué)團隊對成功的定義的理解與用戶的標準經(jīng)常不同。最近,我們與一家公司合作,試圖預(yù)測惡劣天氣對公用事業(yè)公司運營的影響。技術(shù)團隊絞盡腦汁想要提高他們模型的MAPE分數(shù)。當我們深入研究時,我們發(fā)現(xiàn)MAPE根本不是正確的度量標準,他們所追求的目標是他們自己設(shè)定的(而不是傾聽用戶的意見)。用戶實際上最關(guān)心的是,我們能夠始終如一地將風(fēng)暴的影響嚴重程度劃分為1-5級的能力,這個劃分是為他們的操作程序定義的。
要確保數(shù)據(jù)科學(xué)團隊對這個問題有一個全面的理解,并且這個理解最好直接來自用戶,這對于一個新計劃的成功是至關(guān)重要的。如果你的團隊陷入了上面描述的模型“不能工作”的情況,那么第一步就是回去,確保你已經(jīng)正確地定義了問題,并理解你的用戶如何定義成功。
2. 數(shù)據(jù)是否正確、完整?
下一步是回頭查看你的團隊收集的輸入數(shù)據(jù)。通常,在處理復(fù)雜的實際模型時,模型性能不好的主要原因是由于輸入數(shù)據(jù)集和特征的問題,而不是模型本身。特別是當你運行多種類型的模型(我們建議你盡可能這樣做)并得到類似的結(jié)果時,這通常是輸入數(shù)據(jù)集的問題。
這一步的一個關(guān)鍵部分是確保你已經(jīng)收集了盡可能多的相關(guān)數(shù)據(jù)。通常,現(xiàn)實世界的模式中有一些因素并不總是直觀或者明顯的,因此你可以收集的數(shù)據(jù)和特征越多越好。你可以使用許多技術(shù)來降低特征的選擇,以便在最相關(guān)的特征上構(gòu)建模型,我們將在下一個步驟中討論這些特征。但是對于這一步,重點是重新檢查你的假設(shè),哪些輸入的特征影響了你試圖建模的輸出,如果需要,還可以返回以獲取額外的數(shù)據(jù)。例如,當試圖為現(xiàn)實世界的現(xiàn)象建模時,通常需要考慮一些不明顯的因素,因為這些不明顯的因素會造成影響,特別是異常情況——例如季節(jié)性、天氣、日歷事件,甚至地緣政治事件。
其次,應(yīng)該進行一些簡單的QA檢查,以確保輸入數(shù)據(jù)得到正確映射和處理。最近,我們與一個想改善模型性能的客戶進行了合作,但最終發(fā)現(xiàn)問題根本不是與模型有關(guān)——客戶錯誤地處理了一些地理位置的特征數(shù)據(jù),這使得他們運行的模型無法識別正確的模式。
CRISP-DM流程是許多數(shù)據(jù)科學(xué)團隊用于管理項目的最常見框架之一。我們喜歡它的重點在于它確保在深入建模之前就能理解業(yè)務(wù)和數(shù)據(jù)。CRISP-DM過程中的兩個關(guān)鍵步驟是“數(shù)據(jù)理解”和“數(shù)據(jù)準備”。正確地遵循這些步驟需要深入研究輸入數(shù)據(jù)以真正地理解它,通常需要可視化數(shù)據(jù)中的分布、趨勢和關(guān)系?!皵?shù)據(jù)準備”通常包括預(yù)處理、數(shù)據(jù)擴充與標準化,以便為建模做準備。如果處理得當,這兩個步驟可以幫助數(shù)據(jù)科學(xué)家確保輸入數(shù)據(jù)中的錯誤不會導(dǎo)致他以后遇到的任何模型性能問題。
3. 調(diào)整模型提升性能
既然你已經(jīng)盡可能正確和完整地驗證了輸入數(shù)據(jù),現(xiàn)在是時候關(guān)注有趣的東西了——建模本身。這一步中影響最大的部分之一是特征選擇——從上到下選擇最影響輸出的關(guān)鍵特征,并對這些特征進行訓(xùn)練,消除冗余或高度相關(guān)的特征,以提高模型的速度和準確度。關(guān)于特征選擇技術(shù)有一些很好的博客文章,包括單變量選擇、遞歸特征消除和隨機森林特征重要性。這里有一個可供參考:https://machinelearningmastery.com/feature-selection-machine-learning-python/。無論你使用的是哪種技術(shù),或者它們的組合,都要確保在這一步上花費時間,為你的模型獲得特征的最佳組合。
此步驟的另一個重要部分是重新考慮模型的選擇,或者考慮添加額外的模型類型或組合多個模型。同樣的,也有許多比較不同模型優(yōu)缺點的好文章,但是我們建議盡可能運行至少兩種模型類型(理想情況下,一種是神經(jīng)網(wǎng)絡(luò))來比較結(jié)果。
最后,一旦你的特征和選擇的模型確定了后,重新調(diào)參,并且確保你正確地定義訓(xùn)練集,驗證集和測試集,這代表你在調(diào)參時并沒有選擇欺詐,所以它在新數(shù)據(jù)上可以泛化的很好,而不是在訓(xùn)練集上表現(xiàn)良好甚至過擬合導(dǎo)致在新數(shù)據(jù)上模型沒有良好的工作。
4. 最后,也是最重要的,管理客戶的期望
這是許多數(shù)據(jù)科學(xué)家忽視的另一個關(guān)鍵步驟,因為他們認為這“不是他們的工作”。當推出一個面向世界的新機器學(xué)習(xí)產(chǎn)品時,模型在真實世界的性能存在相當大的不確定性。此外,如上所述,盡管你盡了最大的努力使準確度最大化,但是在你正在解決的問題在真實世界中會出現(xiàn)的大量噪聲,這可能會限制模型的性能。所以這個步驟是數(shù)據(jù)科學(xué)團隊的責(zé)任,需要數(shù)據(jù)科學(xué)團隊去與產(chǎn)品經(jīng)理,銷售人員,客戶正確定義客戶期待在模型中看到的性能,并且在時間的推移擁有額外的數(shù)據(jù)的情況下,指導(dǎo)他們?nèi)绾稳ビ?xùn)練改善模型。
所以下次你的團隊在模型放入真實世界里遇到性能問題時,不要玩指責(zé)游戲或直接一頭扎進調(diào)參工作進行優(yōu)化與擬合,后退一步,跟著這個簡單的,結(jié)構(gòu)化的過程一步一步來解決這個問題,在你的新模型上最大化性能。
-
模型
+關(guān)注
關(guān)注
1文章
3267瀏覽量
48921 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24737
發(fā)布評論請先 登錄
相關(guān)推薦
評論