1. 程式人生 > >Coursera吳恩達機器學習課程 總結筆記及作業程式碼——第6周有關機器學習的小建議

Coursera吳恩達機器學習課程 總結筆記及作業程式碼——第6周有關機器學習的小建議

1.1 Deciding what to try next

當你除錯你的學習演算法時,當面對測試集你的演算法效果不佳時,你會怎麼做呢?
這裡寫圖片描述

  • 獲得更多的訓練樣本?
  • 嘗試更少的特徵?
  • 嘗試獲取附加的特徵?
  • 嘗試增加多項式的特徵?
  • 嘗試增加λ?
  • 嘗試減小λ?

由此我們引出了機器學習診療法


1.2 EvaluaDng a hypothesis

這裡寫圖片描述
我們通過將資料集分成訓練集和測試集,
將訓練集訓練出的引數用測試集資料測試效能。

線性迴歸時:
Jtest(θ)=12mtestmtesti=1(hθ(x(i)test)y(i)test)2

邏輯迴歸時:
Jtest(

θ)=12mtestmtesti=1y(i)testlog(hθ(x(i)test))+(1y(i)test)log(1hθ(x(i)test))


1.3 Model selecDon and training/validaDon/test sets

在多項式迴歸時,我們該怎麼選擇次數作為我們的假設模型呢?
這裡寫圖片描述
我們可以把資料集分為三類,訓練集,交叉驗證集和測試集,
用交叉驗證集來作為評判選擇的標準,選擇合適的模型,而測試集則是作為演算法效能的評判。
這裡寫圖片描述

1.4 Diagnosing bias vs variance

這裡寫圖片描述
上面的圖分別表示了高偏差,剛好,高方差

J

train(θ)=12mtrainmtraini=1(hθ(x(i)train)y(i)train)2
Jcv(θ)=12mcvmcvi=1(hθ(x(i)cv)y(i)cv)2
這裡寫圖片描述
從圖中可以看出,隨著多項式次數的增大,訓練集上的偏差逐漸變小,而交叉驗證集上的偏差在減小到一定程度後開始升高。

在高偏差(欠擬閤中)
Jtrain(θ)很高
Jcv(θ)Jtrain(θ)

在高方差(過擬閤中)
Jtrain(θ)很低
Jcv(θ)Jtrain(θ)


1.5 Regularization and bias/variance

在加入正則化項後根據λ的不同所得圖如下
這裡寫圖片描述

我們同樣可以通過在交叉驗證集上的測試選擇較好的λ
這裡寫圖片描述

根據λ大小畫出的擬合曲線如下
這裡寫圖片描述

1.6 Learning curves

根據樣本的大小與誤差的關係我們可以畫出一般的學習曲線模樣
這裡寫圖片描述

在高偏差的情況下,隨著樣本數目的增大,訓練集上的誤差和交叉驗證集上的誤差逐漸逼近。
這裡寫圖片描述
也就是說,增大樣本的方法對高偏差的模型並不能起到一定作用

而模型處於高方差的情況下,增大樣本可能會起到效果。
這裡寫圖片描述

對開頭提出的各種措施,我們看看他們適合於什麼樣的模型
這裡寫圖片描述

2.1 Machine learning system design

以做一個垃圾郵件分類器為例。
我們需要尋找最頻繁出現出現的n個單詞(10000~50000)作為訓練集,而不是隨意手工