如何選擇機器學習模型?

↑↑↑點擊上方藍字,回覆資料,10個G的驚喜

作者 | Santiago Valdarrama  譯者 | Sambodhi  策劃 | 劉燕

本文最初發表於 Towards Data Science 博客,經原作者 Santiago Valdarrama 授權,InfoQ 中文站翻譯並分享。

和很多人的想法相反,性能最好的機器學習模型未必是最好的解決方案。在 Kaggle 競賽中,性能是你需要的全部。實際上,這也是另一個需要考慮的因素。下面讓我們從模型的性能開始,並重新考慮一些其他考慮因素,以便在選擇模型來解決問題時牢記在心。

1. 性能

模型結果的質量是選擇模型時應考慮的基本因素。優先選擇能夠使性能最大化的算法。取決於問題,不同的度量標準可能對分析模型的結果有所幫助。舉例來說,最流行的度量有正確率、準確率、查全率和 F1 分數。

切記,並非每一個度量都適用於所有的情況。例如,在處理不平衡的數據集時,正確率是不適當的。在我們準備開始模型選擇過程之前,選擇一種良好的度量(或一組指標)來評估模型性能是一項至關重要的任務。

2. 可解釋性

很多情況下,對模型結果的解釋是至關重要的。遺憾的是,很多算法就像黑盒子一樣工作,無論結果如何,都很難解釋。在這些情況下,缺乏可解釋性可能是成功或失敗的決定性條件。

如果存在可解釋性問題,線性迴歸和決策樹是很好的選擇。神經網絡則不然。選擇好的候選者之前,一定要知道每種模型的結果是否易於解釋。有意思的是,可解釋性和複雜性通常存在於兩個極端,所以接下來我們來看看複雜性。

3. 複雜性

一種複雜的模型在數據中可能會發現更多有趣的模式,但是,這會使維護和解釋更加困難。

這裏有一些不嚴謹的概括,需要記住:

  • 複雜性越高,性能就越好,但是成本也越高。

  • 複雜性與可解釋性成反比。模型越複雜,解釋結果就越困難。

拋開可解釋性不談,構建和維護模型的成本是項目成功的關鍵因素。複雜的設置會對模型的整個生命週期產生更大的影響。

4. 數據集大小

可用的訓練數據量是選擇模型時要考慮的主要因素之一。

神經網絡在處理和合成大量數據方面確實很出色。KNN(K-Nearest Neighbors,K- 最近鄰)模型更好,示例也更少。除了可用的數據量外,還有一個重要的考慮因素是,爲了獲得好的結果,你真正需要多少數據。有時候,你可以通過 100 個訓練例子來建立一個很好的解決方案;有時候,你需要 100000 個例子。

利用這些與你的問題和數據量有關的信息,選擇一個模型來處理它。

5. 維度

從兩個不同的角度看待維度是有用的:數據集的垂直大小代表我們擁有的數據量。水平大小代表特徵的數量。

我們已經討論了垂直維度如何影響優秀模型的選擇。事實證明,水平維度也是需要考慮的因素。如果你的模型有更多的特徵,就會有更好的解決方案。越多的特徵也會增加模型的複雜性。

“維度的詛咒”(Curse of dimensionality)很好地介紹了維度如何影響模型的複雜性。可以想象,並非每一個模型對高維數據集的擴展都是相同的。在將高維數據作爲問題進行集成時,我們可能也需要引入特定的降維算法。PCA 是這方面最流行的算法之一。

6. 訓練時間與成本

訓練一個模型需要多長時間,需要多少錢?你會選擇一個正確率爲 98%、訓練成本爲 10 萬美元的模型,還是選擇一個準確率爲 97%、成本爲 1 萬美元的模型?

這個問題的答案當然取決於你的個人情況。

需要在接近實時的情況下結合新知識的模型,很難適應長週期的訓練。舉例來說,推薦系統需要根據每個用戶的動作不斷更新,才能從廉價的訓練週期中獲益。在設計可擴展的解決方案時,平衡時間、成本和性能非常重要。

7. 推理時間

運行一個模型並作出預測需要多長時間?想象一下自動駕駛系統:它需要實時作出決策,因此任何時間過長的模型都無法被考慮。

例如,使用 KNN 開發預測所需的大部分處理都在推理過程中進行。因此運行它的成本非常高。但決策樹的推理時間較短,在訓練過程中需要較長的時間。

結語

很多人專注於他們最喜歡的模型。常常是他們最熟悉的那個,在前一個項目中給他們帶來了好效果。

但是機器學習中 沒有免費的午餐。任何一種模型都不能同時適用於所有情況,尤其是當我們考慮現實生活中的系統限制時。

當選擇一個好的模型時,瞭解幾個不同的考慮因素對確保項目的成功至關重要。作爲總結,下面列出了我們剛纔討論的內容:

  1. 模型的性能

  2. 結果的可解釋性

  3. 模型的複雜性

  4. 數據集的大小

  5. 數據的維度

  6. 訓練時間和成本

  7. 推理時間

作者介紹:Santiago Valdarrama,專注於機器學習系統。

原文鏈接:

https://towardsdatascience.com/considerations-when-choosing-a-machine-learning-model-aa31f52c27f3?gi=b42e581fe448



   
   
   

推薦閱讀

(點擊標題可跳轉閱讀)

神經網絡入門

統 計 學 無 用 了 ?

我的深度學習之路

【開源】23個優秀的機器學習數據集

6行代碼!用Python將PDF轉爲word

【2021最新版】臺大美女教授陳縕儂:《應用深度學習》

【2021最新版】李宏毅《機器學習》視頻教程 PPT

老鐵,三連支持一下,好嗎?↓↓↓

本文分享自微信公衆號 - 機器學習算法與Python實戰(tjxj666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章