機器學習算法中的過擬合與欠擬合

在機器學習表現不佳的緣由要麼是過分擬合或欠擬合數據。

機器學習中的逼近目標函數過程

監督式機器學習一般理解爲逼近一個目標函數(f)(f),此函數映射輸入變量(X)到輸出變量(Y).html

Y=f(X)Y=f(X)算法

這種特性描述能夠用於定義分類和預測問題和機器學習算法的領域。機器學習

從訓練數據中學習目標函數的過程當中,咱們必須考慮的問題是模型在預測新數據時的泛化性能。泛化好壞是很重要的,由於咱們收集到的數據只是樣本,其帶有噪音而且是不徹底的。函數

機器學習中的泛化

在In機器學習中,咱們描述從訓練數據學習目標函數的學習過程爲概括性的學習。post

概括與特別的樣本中學習到通用的概念有關,而這就是監督式機器學習致力於解決的問題。這與推演不一樣,其主要是另外一種解決問題和尋求從一般的規則中找尋特別的內容。性能

泛化便是,機器學習模型學習到的概念在它處於學習的過程當中時模型沒有碰見過的樣本時候的表現。學習

好的機器學習模型的模板目標是從問題領域內的訓練數據到任意的數據上泛化性能良好。這讓咱們能夠在將來對模型沒有見過的數據進行預測。測試

在機器學習領域中,當咱們討論一個機器學習模型學習和泛化的好壞時,咱們一般使用術語:過擬合和欠擬合.ui

過擬合和欠擬合是機器學習算法表現差的兩大緣由。spa

統計擬合

在統計學中,擬合指的是你逼近目標函數的遠近程度。

這個術語一樣能夠用於機器學習中,由於監督式機器學習算法的目標也是逼近一個未知的潛在映射函數,其把輸入變量映射到輸出變量。

統計學一般經過用於描述函數和目標函數逼近的吻合程度來描述擬合的好壞

這類理論中的一些在機器學習中也是有用的(例如,計算殘差),可是一些技巧假設咱們已經知道了咱們要逼近的函數。這和機器學習的場景就不一樣了。

若是咱們已經知道了目標函數的形式,咱們將能夠直接用它來作預測,而不是從一堆有噪音的數據中把它費力的學習出來。

機器學習中的過擬合

過擬合指的是referstoa模型對於訓練數據擬合程度過當的狀況。

當某個模型過分的學習訓練數據中的細節和噪音,以致於模型在新的數據上表現不好,咱們稱過擬合發生了。這意味着訓練數據中的噪音或者隨機波動也被當作概念被模型學習了。而問題就在於這些概念不適用於新的數據,從而致使模型泛化性能的變差。

過擬合更可能在無參數非線性模型中發生,由於學習目標函數的過程是易變的具備彈性的。一樣的,許多的無參數器學習算法也包括限制約束模型學習概念多少的參數或者技巧。

例如,決策樹就是一種無參數機器學習算法,很是有彈性而且容易受過擬合訓練數據的影響。這種問題能夠經過對學習事後的樹進行剪枝來解決,這種方法就是爲了移除一些其學習到的細節。

機器學習中的欠擬合

欠擬合指的是模型在訓練和預測時表現都很差的狀況。

一個欠擬合的機器學習模型不是一個良好的模型而且因爲在訓練數據上表現很差這是顯然的。

欠擬合一般不被討論,由於給定一個評估模型表現的指標的狀況下,欠擬合很容易被發現。矯正方法是繼續學習而且試着更換機器學習算法。雖然如此,欠擬合與過擬合造成了鮮明的對照。

機器學習中好的擬合

理想上,你確定想選擇一個正好介於欠擬合和過擬合之間的模型。

這就是咱們學習的目標,可是實際上很難達到。

爲了理解這個目標,咱們能夠觀察正在學習訓練數據機器學習算法的表現。咱們能夠把這個過程劃分爲分別是訓練過程和測試過程

隨着時間進行,算法不斷地學習,模型在訓練數據和測試數據上的錯誤都在不斷降低。可是,若是咱們學習的時間過長的話,模型在訓練數據上的表現將繼續降低,這是由於模型已通過擬合而且學習到了訓練數據中的不恰當的細節以及噪音。同時,測試數據集上的錯誤率開始上升,也便是模型的泛化能力在降低。

這個完美的臨界點就處於測試集上的錯誤率開始上升時,此時模型在訓練集和測試集上都有良好的表現

你能夠用你本身喜好的機器學習算法來實踐這個實驗。而在實踐中這一般是無用的,由於在測試數據上運用這個技巧來選擇訓練中止的時機,這意味着這個測試集對於咱們並非「不可見的」或者單獨的衡量標準。數據的一些知識(許多有用的知識)已經泄露到了訓練過程。

一般有兩種手段能夠幫助你找到這個完美的臨界點:重採樣方法和驗證集方法

如何限制過擬合

過擬合和欠擬合能夠致使不好的模型表現。可是到目前爲止大部分機器學習實際應用時的問題都是過擬合。

過擬合是個問題由於訓練數據上的機器學習算法的評價方法與咱們最關心的實際上的評價方法,也就是算法在位置數據上的表現是不同的。

當評價機器學習算法時咱們有二者重要的技巧來限制過擬合:

使用重採樣來評價模型效能
保留一個驗證數據集

最流行的重採樣技術是k折交叉驗證。指的是在訓練數據的子集上訓練和測試模型k次,同時創建對於機器學習模型在未知數據上表現的評估。

驗證集只是訓練數據的子集,你把它保留到你進行機器學習算法的最後才使用。在訓練數據上選擇和調諧機器學習算法以後,咱們在驗證集上在對於模型進行評估,以便獲得一些關於模型在未知數據上的表現的認知。

對於機器學習,使用交叉驗證在未知數據上進行驗證模型效能是一種良好的標準。若是你擁有數據,使用驗證集也是一種良好的實踐。

進一步閱讀

若是你想學習更多關於機器學習中的泛化、過擬合和欠擬合的知識,本節列舉了一些相關的推薦資源。

維基百科上的泛化
維基百科上過擬合
維基百科上的概括推理
維基百科上的感應問題
Quora上的過擬合的直觀解釋

總結

本文中你學習了機器學習就是以感應方法來解決問題。

你學習了泛化是一種關於模型學習到的知識在未知數據上表現程度的概念描述。最後你學習了機器學習中的術語:泛化中的過擬合與欠擬合:

  • 過擬合:在訓練數據上表現良好,在未知數據上表現差。
  • 欠擬合:在訓練數據和未知數據上表現都不好


原文連接:Overfitting and Underfitting With Machine Learning Algorithms

相關文章
相關標籤/搜索