↑↑↑點擊上方藍字,回覆資料,10個G的驚喜
本文最初發表於 Towards Data Science 博客,經原作者 Santiago Valdarrama 授權,InfoQ 中文站翻譯並分享。
和很多人的想法相反,性能最好的機器學習模型未必是最好的解決方案。在 Kaggle 競賽中,性能是你需要的全部。實際上,這也是另一個需要考慮的因素。下面讓我們從模型的性能開始,並重新考慮一些其他考慮因素,以便在選擇模型來解決問題時牢記在心。
模型結果的質量是選擇模型時應考慮的基本因素。優先選擇能夠使性能最大化的算法。取決於問題,不同的度量標準可能對分析模型的結果有所幫助。舉例來說,最流行的度量有正確率、準確率、查全率和 F1 分數。
切記,並非每一個度量都適用於所有的情況。例如,在處理不平衡的數據集時,正確率是不適當的。在我們準備開始模型選擇過程之前,選擇一種良好的度量(或一組指標)來評估模型性能是一項至關重要的任務。
很多情況下,對模型結果的解釋是至關重要的。遺憾的是,很多算法就像黑盒子一樣工作,無論結果如何,都很難解釋。在這些情況下,缺乏可解釋性可能是成功或失敗的決定性條件。
如果存在可解釋性問題,線性迴歸和決策樹是很好的選擇。神經網絡則不然。選擇好的候選者之前,一定要知道每種模型的結果是否易於解釋。有意思的是,可解釋性和複雜性通常存在於兩個極端,所以接下來我們來看看複雜性。
一種複雜的模型在數據中可能會發現更多有趣的模式,但是,這會使維護和解釋更加困難。
這裏有一些不嚴謹的概括,需要記住:
複雜性越高,性能就越好,但是成本也越高。
複雜性與可解釋性成反比。模型越複雜,解釋結果就越困難。
拋開可解釋性不談,構建和維護模型的成本是項目成功的關鍵因素。複雜的設置會對模型的整個生命週期產生更大的影響。
可用的訓練數據量是選擇模型時要考慮的主要因素之一。
神經網絡在處理和合成大量數據方面確實很出色。KNN(K-Nearest Neighbors,K- 最近鄰)模型更好,示例也更少。除了可用的數據量外,還有一個重要的考慮因素是,爲了獲得好的結果,你真正需要多少數據。有時候,你可以通過 100 個訓練例子來建立一個很好的解決方案;有時候,你需要 100000 個例子。
利用這些與你的問題和數據量有關的信息,選擇一個模型來處理它。
從兩個不同的角度看待維度是有用的:數據集的垂直大小代表我們擁有的數據量。水平大小代表特徵的數量。
我們已經討論了垂直維度如何影響優秀模型的選擇。事實證明,水平維度也是需要考慮的因素。如果你的模型有更多的特徵,就會有更好的解決方案。越多的特徵也會增加模型的複雜性。
“維度的詛咒”(Curse of dimensionality)很好地介紹了維度如何影響模型的複雜性。可以想象,並非每一個模型對高維數據集的擴展都是相同的。在將高維數據作爲問題進行集成時,我們可能也需要引入特定的降維算法。PCA 是這方面最流行的算法之一。
訓練一個模型需要多長時間,需要多少錢?你會選擇一個正確率爲 98%、訓練成本爲 10 萬美元的模型,還是選擇一個準確率爲 97%、成本爲 1 萬美元的模型?
這個問題的答案當然取決於你的個人情況。
需要在接近實時的情況下結合新知識的模型,很難適應長週期的訓練。舉例來說,推薦系統需要根據每個用戶的動作不斷更新,才能從廉價的訓練週期中獲益。在設計可擴展的解決方案時,平衡時間、成本和性能非常重要。
運行一個模型並作出預測需要多長時間?想象一下自動駕駛系統:它需要實時作出決策,因此任何時間過長的模型都無法被考慮。
例如,使用 KNN 開發預測所需的大部分處理都在推理過程中進行。因此運行它的成本非常高。但決策樹的推理時間較短,在訓練過程中需要較長的時間。
很多人專注於他們最喜歡的模型。常常是他們最熟悉的那個,在前一個項目中給他們帶來了好效果。
但是機器學習中 沒有免費的午餐。任何一種模型都不能同時適用於所有情況,尤其是當我們考慮現實生活中的系統限制時。
當選擇一個好的模型時,瞭解幾個不同的考慮因素對確保項目的成功至關重要。作爲總結,下面列出了我們剛纔討論的內容:
模型的性能
結果的可解釋性
模型的複雜性
數據集的大小
數據的維度
訓練時間和成本
推理時間
作者介紹:Santiago Valdarrama,專注於機器學習系統。
原文鏈接:
https://towardsdatascience.com/considerations-when-choosing-a-machine-learning-model-aa31f52c27f3?gi=b42e581fe448
推薦閱讀
(點擊標題可跳轉閱讀)
老鐵,三連支持一下,好嗎?↓↓↓
本文分享自微信公衆號 - 機器學習算法與Python實戰(tjxj666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。