1. 程式人生 > >能否說出幾種降低過擬合和欠擬合風險的方法

能否說出幾種降低過擬合和欠擬合風險的方法

出自<百面機器學習>:https://item.jd.com/12401859.html
侵刪

一、降低過擬合風險的方法

  • 增加訓練資料

    ​ 首先,我們知道的是,使用更多的訓練資料是解決過擬合問題最有效的手段。因為如果說我們有更多的樣本,也就是有更多的訓練資料的話,我們就能夠讓模型學習到更多更有效的特徵,從而就能減小噪聲的影響。所以我們能夠從資料入手來獲得更多的訓練資料來解決過擬合問題。

    ​ 但是我們也知道直接增加這個資料一般來講是很困難的,那麼對此我們就可以通過一定的規則來擴充訓練資料,比如說我們可以使用這個GAN來合成大量的新資料,再一個如果說我們在影象分類上面的話,我們可以讓影象進行平移,旋轉或者縮放等方式來擴充資料。

  • 降低模型的複雜度

    ​ 其次我們也知道在資料較少的時候,如果說模型是過於複雜的,也很容易產生這個過擬合問題,所以我們也可以適當的降低模型的複雜度來避免模型擬合過多的取樣噪聲。
    ​ 比如說我們在這個神經網路模型裡邊兒我們就可以減少神經元的個數就是每層的神經元個數,也可以減少神經網路模型的網路層數來解決過擬合問題。當然我們如果說在這個決策樹模型中的話,我們可以通過降低樹的高度,或者說對樹進行剪枝等操作,也能夠降低模型的複雜度。
    ​ 然後我們就能夠通過降低模型的複雜度來解決過擬合的問題。

  • 增大正則化係數

    ​ 然後我們還能用最常用的方法就是正則化來解決。就是給模型裡邊兒的所有引數都加上一定的正則約束來避免因為權值過大產生過擬合問題。

  • 減少特徵的數量

    ​ 我們還能夠想的到當出現過擬合現象的時候。也有可能是因為我們的特徵數量太多導致的。我們就可以通過減少相關性係數較小的特徵來減少特徵數量,防止過擬合的情況發生。

  • 整合學習方法

    ​ 最後就是還有一個整合學習方法。整合學習就是我們把多個模型整合到一起,然後來降低這個使用單一模型的時候產生的過擬合問題。不過這個方法我只是瞭解了一下,嗯,有一個叫做Bagging的方法。

    ​ 關於Bagging:https://baijiahao.baidu.com/s?id=1581775182037963646

二、降低欠擬合風險的方法

  • 新增新特徵

    ​ 首先,當出現欠擬合問題的時候我們首先要想到的就是特徵值不足導致的,或者說也可能是現有的特徵和樣本標籤的相關性不是那麼強。
    ​ 這樣的話我們就可以通過“上下文特徵”“ID類特徵”或者“組合特徵”來獲取更多的特徵,然後這樣往往就能夠取得更好的結果來降低欠擬合風險。
    ​ 如果是在深度學習裡的話,我們可以通過很多模型來來幫助豐富特徵。比如因子分解機(Factorization Machine, FM)、GBDT(梯度提升決策樹)、Deep-crossing 等。

    關於FM:https://blog.csdn.net/liruihongbob/article/details/75008666

    關於GBDT:https://blog.csdn.net/google19890102/article/details/51746402/

    關於Deep-crossing:https://blog.csdn.net/m0_37721099/article/details/79265958

  • 增加模型的複雜度

    ​ 如果說現有的特徵和樣本標籤的相關性挺強的,但是還是出現了欠擬合的情況,而且特徵也特別多的時候,我們就能夠通過另一個方式:增加模型的複雜度來使模型具有更強的擬合能力。
    ​ 比如說線上性模型中,我們可以新增高次項。在神經網路模型中可以增加網路層數或者每一層的神經元個數,來增加模型複雜度使模型擁有更強的擬合能力。

  • 減小正則化係數

    ​ 最後,我們還能通過減小正則化係數來這個降低欠擬合風險。正則化本來是用來防止過擬合的,但是當模型出現欠擬合現象的時候,我們也是可以有針對性地減小正則化係數來防止欠擬合情況發生。

    檢視更多:http://xingtu.info