[深度之眼機器學習訓練營第四期]關於機器學習應用的一些建議

關於機器學習應用的一些建議

機器學習算法評估

模型評估

在整個機器學習任務的流程中,咱們須要在數據集上訓練機器學習模型,找到一個比較「好」的假設。可是,有些假設在已知數據集上表現很好,在新數據上的性能卻不好,錯誤率比較高,這也就是咱們常說的「過擬合」。那麼,咱們如何解決這種類型的問題呢?算法

通常來講,評價機器學習模型的性能,主要看模型在未知數據上的表現。所以,當咱們拿到一個數據集之後,不能立刻進行模型的訓練,而是須要把數據集分割成兩部分,其中一部分用於訓練,而另外一部分則用來評估模型的好壞。其中用於訓練的數據稱爲訓練集,用來評估的數據稱爲測試集。這樣,咱們就儘量準確地評價模型的性能。通常而言,訓練集佔整個數據集的70%,測試集佔30%。機器學習

模型選擇

假設咱們有一堆不一樣階數的多項式線性迴歸模型,如何找到在數據集上表現最好的模型呢?咱們的方法是在訓練集上訓練這麼一堆不一樣階數的多項式模型,而後在未知數據上評價它們的性能,最後選擇一個「最好」的模型。這時,咱們須要把數據分紅訓練集,驗證集,測試集三個部分。咱們在訓練集上學習模型參數,在驗證集上調整超參數,最後在測試集上評估模型的泛化性能。通常地,訓練集、驗證集和測試集的比例爲60%/20%/20%;當數據量很是大時,能夠按照80%/10%/10%的比例劃分數據集。經過這種方法,咱們就能夠選擇出合適的模型。性能

方差與誤差

下面的圖片描述了方差和誤差的關係。


image.png假設紅色的靶心區域是樣本的真實值,藍點爲模型對樣本的預測值。當藍點從靶心逐漸向外移動時,預測效果逐漸變差。很容易看出有兩副圖中藍點比較集中,另外兩幅中比較分散,它們描述的是方差的兩種狀況。藍點較集中意味着方差較小,較分散則意味着方差較大。再從藍點與紅色靶心區域的位置關係,靠近紅色靶心的屬於誤差較小的狀況, 遠離靶心的屬於誤差較大的狀況。


顯然,模型的誤差較高,說明此時模型並無從數據學習到什麼東西,模型在訓練集和數據集上的表現都不好,模型處於欠擬合狀態。當模型的方差較高時,說明模型能夠較好地擬合訓練數據集,而在驗證集和測試集上的性能較差,此時模型處於過擬合狀態。咱們的目的就是找到一個模型,它在訓練集和驗證集上的偏差都比較低。
image.png
前面咱們提到,正則化技術能夠用來解決模型的過擬合問題,其中懲罰係數$\lambda
$表示對模型參數的懲罰程度。那麼,咱們如何選擇一個合適的懲罰係數呢?一般,咱們有如下選擇步驟:學習

  1. 建立一個懲罰係數備選集合,好比\(\lambda\in\{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24\}\)
  2. 建立一系列不一樣的機器學習模型
  3. 爲這些模型添加正則化項,而後在設置不一樣懲罰係數的狀況下學習不一樣的模型
  4. 在不使用正則化的狀況下,在驗證集上評估不一樣模型的性能
  5. 選擇在驗證集上偏差最小的模型\(\Theta^*\)和懲罰係數\(\lambda^*\)的組合
  6. 使用選擇的模型\(\Theta^*\)和懲罰係數\(\lambda^*\)在測試集上進行測試並觀察其泛化性能測試

    學習曲線

    當模型的誤差較大時,隨着訓練數據的增長,訓練偏差與測試偏差會趨近。
    image.png
    而當模型的方差較大時,隨着訓練數據的增長,訓練偏差與測試偏差之間會有較大的。
    image.png
    爲了解決方差和誤差較大的問題,課程最後給了幾條建議:spa

  • Getting more training examples: Fixes high variance
  • Trying smaller sets of features: Fixes high variance
  • Adding features: Fixes high bias
  • Adding polynomial features: Fixes high bias
  • Decreasing λ: Fixes high bias
  • Increasing λ: Fixes high variance.
相關文章
相關標籤/搜索