學會判斷機器學習模型的性能——開發基線模型技能
AiTechYun
編輯:chux
在為預測建模問題開發了機器學習模型之後,你該如何確定模型性能是否良好?
這是初學者常問到的問題。作為一個初學者,你經常會去尋找這個問題的答案,比如你希望別人為你解答,x%的準確性或者x的誤差分數是否有效。這篇文章將告訴你如何自己來回答這個問題,以及確定你的模型技能是否良好。
讀完這篇文章,你會明白:
基線模型可用來探索你的問題中性能的標準,同時也可以評估所有其他的模型。
因為數據和演算法的隨機性,所有的預測模型都包含著誤差,完美的分數實際上是不存在的。
應用機器學習的真正目的是探索可能的模型空間,並探索相對於你的特定資料庫基線,模型得分多少才算是優秀。
概述
這篇文章分為四個部分,分別是:
模型技能是相對的
基線模型技能
什麼才算是最佳分數
探索模型技能的極限
模型技能是相對的
你的預測建模問題是獨一無二的,包括你已有的特定數據、使用的工具以及你將達成的技能。你的預測建模問題是懸而未決的,因此,我們不可能知道什麼才算是好的模型,也不知道它可能會有什麼技能。你可能會根據領域內的知識設想出技能高的模型是怎樣的,但你不知道是否可以達成這些技能分數。我們最多能做的只是用你特有的數據,使機器學習性能與其他基於相同數據訓練的模型進行比較。
機器學習模型的性能是相對的,好的模型所能達到的分數只能代表它是有意義的,而且只有其他模型也基於相同的數據進行訓練,並得出技能分數,才能對其進行分析解釋。
基線模型技能
因為機器學習模型的性能是相對的,所以開發出強健的基線模型是至關重要的。在預測建模問題中,使用基線做出預測既簡單又易於理解。基於你特有的資料庫訓練機器學習模型得出性能,而基線模型技能為性能提供了可接受的最低標準。基線模型的結果提供了一個方案,所有基於你的數據訓練的其他模型技能都可被評估。
基線模型的三個例子:
預測回歸問題的平均數結果。
預測分類問題的眾數結果值。
當輸出結果(也可稱作持久性)作為單變數的時間序列預測問題時,可預測輸入數據。
這樣,你的問題的基線性能就可以作為與其他模型進行比較和評估的標準。
如果模型性能在基線之下,那麼肯定是哪裡出錯了(比如有bug),或者模型並不適用於你的問題。
什麼才算是最佳分數
如果是分類問題,那麼100%準確的就是最佳分數;如果是回歸問題,0誤差就是最佳分數。這些分數其實不可能達到上限或下限。所有的預測建模問題都存在預測誤差。
誤差來源範圍包括:
不完整的數據樣本;
數據中的干擾信息;
建模演算法的隨機性。
你無法獲取最佳分數,但有必要知道你所選擇的方法最有可能得到什麼性能。模型性能結果應落在最低基線和可能得到的最佳分數範圍之間。你必須搜索資料庫中可能模型的空間,發現什麼才算是好或差的分數。
探索模型技能的極限
一旦有了基線,你可以在預測建模問題中探索模型性能的範圍。事實上,這很困難,但也正是項目的目標:基於你特有的資料庫做預測時,找到一個模型,能夠讓你充分證明預測的可靠性。對於解決這一問題有很多策略,其中有兩種你可能會採用:
從高起點出發。選擇精密的,且可以在大部分預測建模問題上表現良好的機器學習方法,比如隨機森林法或梯度推進法。基於你的問題評估模型,將結果用作大致的上下限基線,然後找到能夠得到類似性能的最簡單的模型。
窮舉搜索。評估所有你能想到的,適用於該問題的機器學習方法,並選擇能得到相對於基線的最佳性能的方法。
「從高起點出發」這一方法很便捷,能夠幫助你定義符合預期的模型技能界限,並且找到可獲得相似結果的簡單模型。同時也可以快速分析出問題是否可以解決或可以預測,這一點十分重要,因為不是所有的問題都可被預測。
用窮舉搜索法速度較慢,這種方法主要是為長期運行的項目所設計,在這些項目中,模型技能比其他任何問題都重要。我經常應用這種方法的變體,分批測試類似的方法,稱之為抽樣檢查。
這兩種方法都會為你提供總體模型性能分數,你可以將它們與基線進行比較。這樣你就會明白什麼算是好的或差的分數。
總結
在這篇文章中,你了解到了你的預測建模問題是獨一無二的。只有涉及到基線性能時,你才能區分出什麼是好的模型性能分數。
具體來說,你學到了:
基線模型可用來探索你的問題中性能的標準,同時也可以評估所有其他的模型。
因為數據和演算法的隨機性,所有的預測模型都包含著誤差,完美的分數實際上是不存在的。
應用機器學習的真正目的是探索可能的模型空間,並探索相對於你的特定資料庫基線,模型得分多少才算是優秀。
※鏈聞深度:一篇讀盡區塊鏈機器學習市場的發展現狀與未來
※學好機器學習需要哪些數學知識?
TAG:機器學習 |