當前位置:
首頁 > 知識 > 機器學習中的模型評價、模型選擇和演算法選擇!

機器學習中的模型評價、模型選擇和演算法選擇!

摘要:模型評估、模型選擇和演算法選擇技術的正確使用在學術性機器學習研究和諸多產業環境中異常關鍵。

本文回顧了用於解決以上三項任務中任何一個的不同技術,並參考理論和實證研究討論了每一項技術的主要優勢和劣勢。進而,給出建議以促進機器學習研究與應用方面的最佳實踐。本文涵蓋了用於模型評估和選擇的常見方法,比如留出方法,但是不推薦用於小數據集。不同風格的 bootstrap 技術也被介紹,以評估性能的不確定性,以作為通過正態空間的置信區間的替代,如果 bootstrapping 在計算上是可行的。在討論偏差-方差權衡時,把 leave-one-out 交叉驗證和 k 折交叉驗證進行對比,並基於實證證據給出 k 的最優選擇的實際提示。論文展示了用於演算法對比的不同統計測試,以及處理多種對比的策略(比如綜合測試、多對比糾正)。最後,當數據集很小時,本文推薦替代方法(比如 5×2cv 交叉驗證和嵌套交叉驗證)以對比機器學習演算法。

一、簡介:基本的模型評估項和技術

機器學習已經成為我們生活的中心,無論是作為消費者、客戶、研究者還是從業人員。無論將預測建模技術應用到研究還是商業問題,其共同點都是:做出足夠好的預測。

(一)機器學習的性能評估

如何評估機器學習模型的性能?典型的回答是:第一,將訓練數據饋送給學習演算法以學習一個模型。第二,預測測試集的標籤。第三,計算模型對測試集的預測準確率。實際上,評估模型性能並非那麼簡單。也許可以從不同的角度解決之前的問題:為什麼我們會關心性能評估呢?理論上,模型的性能評估能給出模型的泛化能力,在未見過的數據上執行預測是應用機器學習或開發新演算法的主要問題。通常,機器學習包含大量實驗,例如超參數調整。在訓練數據集上用不同的超參數設置運行學習演算法最終會得到不同的模型。由於我們感興趣的是從該超參數設置中選擇最優性能的模型,因此我們需要找到評估每個模型性能的方法,以將它們進行排序。

鳶尾花的隨機抽取的訓練集和測試設置的分布

我們需要在微調演算法之外對比不同的演算法,通常從預測性能和計算性能方面進行比較。評估模型的預測性能的主要作用:

評估模型的泛化性能,即模型泛化到未見過數據的能力;

通過調整學習演算法和在給定的假設空間中選擇性能最優的模型,以提升預測性能;

確定最適用於待解決問題的機器學習演算法。因此,我們可以比較不同的演算法,選擇其中性能最優的模型;或者選擇演算法的假設空間中的性能最優模型。

留出驗證方法

二、Bootstrapping 和不確定性

這章主要介紹一些用於模型評估的高級技術。首先討論用來評估模型性能不確定性和模型方差、穩定性的技術。之後介紹交叉驗證方法用於模型選擇。我們為什麼要關心模型評估,存在三個相關但不同的任務或原因。

我們想評估泛化準確度,即模型在未見數據上的預測性能。

我們想通過調整學習演算法、從給定假設空間中選擇性能最好的模型,來改善預測性能。

我們想確定手頭最適合待解決問題的機器學習演算法。因此,我們想對比不同的演算法,選出性能最好的一個;或從演算法的假設空間中選出性能最好的模型。

偏差和方差的不同組合

在 MNIST 數據集上 softmax 分類器的學習曲線

二維高斯分布中的重複子採樣

三、超參數優化和模型選擇

幾乎所有機器學習演算法都需要機器學習研究者和從業者指定大量設置。這些超參數控制機器學習演算法在優化性能、找出偏差方差最佳平衡時的行為。用於性能優化的超參數調整本身就是一門藝術,沒有固定規則可以保證在給定數據集上的性能最優。前面的章節提到了用於評估模型泛化性能的留出技術和 bootstrap 技術。偏差-方差權衡和計算性能估計的不穩定性方法都得到了介紹。這裡重點介紹用於模型評估和選擇的不同交叉驗證方法,包括對不同超參數配置的模型進行排序和評估其泛化至獨立數據集的性能。

logistic 回歸的概念

把超參數調整(又稱超參數優化)和模型選擇的過程看作元優化任務。當學習演算法在訓練集上優化目標函數時(懶惰學習器是例外),超參數優化是基於它的另一項任務。這裡,我們通常想優化性能指標,如分類準確度或接受者操作特徵曲線(ROC 曲線)下面積。超參數調整階段之後,基於測試集性能選擇模型似乎是一種合理的方法。但是,多次重複使用測試集可能會帶來偏差和最終性能估計,且可能導致對泛化性能的預期過分樂觀,可以說是「測試集泄露信息」。為了避免這個問題,我們可以使用三次分割(three-way split),將數據集分割成訓練集、驗證集和測試集。對超參數調整和模型選擇進行訓練-驗證可以保證測試集「獨立」於模型選擇。這裡,我們再回顧一下性能估計的「3 個目標」:

我們想評估泛化準確度,即模型在未見數據上的預測性能。

我們想通過調整學習演算法、從給定假設空間中選擇性能最好的模型,來改善預測性能。

我們想確定最適合待解決問題的機器學習演算法。因此,我們想對比不同的演算法,選出性能最好的一個,從演算法的假設空間中選出性能最好的模型。

超參數調整中三路留出方法(three-way holdout method)

k 折交叉驗證步驟

模型選擇中 k 折交叉驗證

總結:預測模型泛化性能的評價方法有多種。到目前為止,本文覆蓋層的方法,不同類型的Bootstrap方法,和K-折交叉驗證法;實際工作中遇到比較大的數據樣本時,使用流出法絕對是最好的模型評價方式。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

著名計算機科學家徐家福在南京逝世 享年94歲
「死亡演算法」:預測死亡時間準確率達90%!

TAG:AI講堂 |