機器學習系列13:機器學習診斷法

  • 2019 年 10 月 7 日
  • 筆記

在機器學習中,我們訓練了一個模型,可能會發現這個模型得到的數據與實際數據偏差太大。這時,通常我們會在如下辦法中選擇去優化我們的演算法。

  • 得到更多的訓練集;
  • 減小特徵的數目;
  • 嘗試去增加特徵;
  • 增加多項式;
  • 增大 λ;
  • 減小 λ。

以上這些步驟通常會花費你大量的時間,而且毫無目的地選擇很可能會沒有效果。

為了防止以上的事情發生,減少讓你抓狂的幾率,維護世界的和平,我們需要用到機器學習診斷法(Machine learning diagnostic)去決定如何優化我們的演算法。

評估假設(Evaluating a Hypothesis)

我們在訓練機器學習模型時,經常會遇到過擬合問題。但何時是過擬合呢?這就需要我們來發現,一種方法是通過畫出函數影像,例如下面這幅圖就能看出是一個過擬合。

事實上我們擬合的函數經常有很多個特徵,導致函數影像很難畫出,需要另一種方法——評估假設(Evaluating a Hypothesis)。具體怎麼操作呢?我們一起來看一下。

我們擁有如下數據集,需要把這些數據集隨機按 7:3 的比例劃分為兩類:訓練集和測試集。訓練集用來訓練模型,測試集用來對模型的準確性進行評估。

對於線性回歸來說,我們就用測試集的代價函數來評估。

對於邏輯回歸這種分類問題,我們除了可以用測試集的代價函數去解決以外,還可以用測試誤差來計算。

對於這個函數,我們可以這麼理解。如果預測結果與原結果不一致,函數值就為 1,也就是出現誤差;否則函數值為 0。最後求測試誤差求平均值得到最終結果。

模型選擇

對於機器學習,我們可能選擇各種次數的多項式作為模型。但是如何確定多項式的次數才是一個令人頭痛的問題。

我們用 d 來表示選擇模型多項式的次數:

選擇完成後,我們會先用數據集訓練出參數集 θ,根據參數集 θ 計算出對應的代價函數,比較代價函數之後,選擇一個最優的多項式作為模型。

這時候,我們的數據集就不能按照之前的原則進行劃分了,要劃分成 3 部分:訓練集(60%)、交叉驗證集(20%)和測試集(20%)。

首先我們通過訓練集訓練出參數集 θ,然後根據交叉驗證集選擇出最優的多項式模型,最後通過測試集去評估假設