改善機器學(xué)習模型的七種方法
譯文譯者 | 布加迪
審校 | 重樓
你是否竭力在測試階段改進模型性能?即使你改進了模型,由于未知的原因,它也會在生產(chǎn)環(huán)境中失靈。如果你遇到類似的問題,那么這篇文章完全適合你。

本文將分享7個技巧,使你的模型準確而穩(wěn)定。如果遵循這些技巧,你可以確保模型即使面對未見過的數(shù)據(jù)也有更好的表現(xiàn)。
為什么要聽我的建議?我已經(jīng)在這個領(lǐng)域工作了近四年,參加過80多場機器學(xué)習比賽,并參與了幾個端到端機器學(xué)習項目。多年來,我還幫助許多專家構(gòu)建了更好、更可靠的模型。
1. 清理數(shù)據(jù)
清理數(shù)據(jù)是最重要的部分。你需要填寫缺失值、處理異常值、規(guī)范數(shù)據(jù),并確保數(shù)據(jù)的有效性。有時,清理Python腳本無法真正起到作用。你必須逐個檢查每個樣本,以確保沒有問題。我知道這會花費你很多時間,但相信我,清理數(shù)據(jù)是機器學(xué)習生態(tài)系統(tǒng)中最重要的部分。
比如說,當我在訓(xùn)練一個自動語音識別模型時,發(fā)現(xiàn)數(shù)據(jù)集中有多個問題無法通過簡單地刪除字符來解決。我不得不聽音頻,重寫準確的轉(zhuǎn)錄。有一些轉(zhuǎn)錄內(nèi)容很模糊,沒有意義。
2. 添加更多數(shù)據(jù)
增加數(shù)據(jù)量通常可以提高模型性能。為訓(xùn)練集添加更相關(guān)、更多樣的數(shù)據(jù)可以幫助模型學(xué)習更多模式,并做出更準確的預(yù)測。如果你的模型缺乏多樣性,它可能面對多數(shù)群體表現(xiàn)良好,但面對少數(shù)群體表現(xiàn)不佳。
許多數(shù)據(jù)科學(xué)家現(xiàn)正在使用生成式對抗網(wǎng)絡(luò)(GAN)來生成更多樣化的數(shù)據(jù)集。為此,他們使用現(xiàn)有數(shù)據(jù)訓(xùn)練GAN模型,然后使用該模型生成合成數(shù)據(jù)集。
3. 特征工程
特征工程是指利用現(xiàn)有數(shù)據(jù)創(chuàng)建新特征,另外刪除對模型決策貢獻較小的不必要特征。這為模型提供了更相關(guān)的信息來進行預(yù)測。
你需要執(zhí)行SHAP分析,查看特征重要性分析,并確定哪些特征對決策過程很重要。然后,它們可以用來創(chuàng)建新的特征,并從數(shù)據(jù)集刪除不相關(guān)的特征。這個過程需要對業(yè)務(wù)用例和每個特征有一番透徹的了解。如果你不了解這些特征以及它們對業(yè)務(wù)的用處,將無異于蒙眼上路。
4. 交叉驗證
交叉驗證是一種用于評估模型跨多個數(shù)據(jù)子集的性能的技術(shù),可以減小過擬合風險,并對其泛化能力提供一番更可靠的估計。這將為你提供模型是否足夠穩(wěn)定方面的信息。
計算整個測試集的準確性可能無法提供關(guān)于模型性能的完整信息。比如說,測試集的前五分之一可能顯示100%的準確性,而后五分之一可能表現(xiàn)不佳,只有50%的準確性。盡管如此,總體準確率可能仍在85%左右。這種差異表明模型是不穩(wěn)定的,需要更干凈、更多樣的數(shù)據(jù)進行再訓(xùn)練。
因此,我建議使用交叉驗證,為其提供你想要用來測試模型的各種度量指標,而不是執(zhí)行簡單的模型評估。
5. 超參數(shù)優(yōu)化
使用默認參數(shù)訓(xùn)練模型可能看起來簡單而快速,但是你錯過了性能的提升,因為在大多數(shù)情況下,你的模型沒有經(jīng)過優(yōu)化。為了在測試期間提高模型的性能,強烈建議對機器學(xué)習算法徹底執(zhí)行超參數(shù)優(yōu)化,并保存這些參數(shù),以便下次可以使用它們來訓(xùn)練或重新訓(xùn)練模型。
超參數(shù)調(diào)優(yōu)需要調(diào)整外部配置以優(yōu)化模型性能。在過擬合和欠擬合之間找到適當?shù)钠胶鈱τ谔岣吣P偷臏蚀_性和可靠性至關(guān)重要。它有時可以將模型的準確率從85%提高到92%,這個幅度在機器學(xué)習領(lǐng)域已相當大。
6. 試驗不同算法
模型選擇和試驗各種算法對于找到特定數(shù)據(jù)的最佳擬合至關(guān)重要。不要僅限于只使用簡單的算法來處理表格數(shù)據(jù)。如果你的數(shù)據(jù)有多個特征和1萬個樣本,你應(yīng)該考慮神經(jīng)網(wǎng)絡(luò)。有時,連邏輯回歸也可以為文本分類提供驚人的效果,這是借助LSTM等深度學(xué)習模型所無法實現(xiàn)的。
從簡單的算法開始,然后慢慢地試用高級算法,以獲得更好的性能。
7. 集成學(xué)習
集成學(xué)習是指合并多個模型以提高整體預(yù)測性能。構(gòu)建模型集合,每個模型都有自己的優(yōu)勢,可以帶來更穩(wěn)定、更準確的模型。
合并這些模型常常給我?guī)?/span>了更好的結(jié)果,有時讓我在機器學(xué)習比賽中進入前10名。不要拋棄表現(xiàn)不佳的機型;如果將它們與一組高性能模型相結(jié)合,你的整體準確性將會得到提高。
集成學(xué)習、清理數(shù)據(jù)集和特征工程是我贏得比賽和實現(xiàn)高性能的三個最佳策略,哪怕是面對未見過的數(shù)據(jù)集。
結(jié)語
還有更多的技巧只適用于某些類型的機器學(xué)習領(lǐng)域。比如在計算機視覺中,我們需要關(guān)注圖像增強、模型架構(gòu)、預(yù)處理技術(shù)和遷移學(xué)習。然而,上面討論的這七個技巧:清理數(shù)據(jù)、添加更多數(shù)據(jù)、特征工程、交叉驗證、超參數(shù)優(yōu)化、試驗不同的算法和集成學(xué)習是普遍適用的,對所有機器學(xué)習模型都有益。
如果運用這些策略,你可以顯著提高預(yù)測模型的準確性、可靠性和穩(wěn)健性,從而獲得更好的洞察力和更明智的決策。
原文標題:7 Ways to Improve Your Machine Learning Models,作者:Abid Ali Awan




























