機器學習(Coursera吳恩達)(五)

機器學習(Coursera吳恩達)(五)

標籤(空格分隔): 機器學習


我們要怎麼樣選擇哪些方法,來改善我們的學習算法。
1. 嘗試減少特徵數量
2. 嘗試獲得更多的特徵
3. 嘗試增加多項式特徵
4. 嘗試減少正則化程度
5. 嘗試增加正則化程度
6. ……
這些方法,應該有判別的方法進行選擇,而不是瞎選。

評估一個假設

如何避免過擬合和欠擬合?
將數據集分爲三部分:Train_set, Test_set, CrossValidation_set.

模型選擇

假設有多個階數不同的模型:
1模型.png-30.8kB
選擇方法:
1. 使用訓練集訓練出10個模型
2. 分別對cv_set計算得到交叉驗證誤差(代價函數的值Jcv
3. 選取代價函數最小的模型
4. 用3.中選擇出的模型對test_set算出推廣誤差(Jtest

偏差和方差

偏差大–欠擬合
方差大–過擬合
2偏差方差.png-43.7kB

3偏差方差隨維數增加圖.png-193kB

train誤差和cv誤差相近時:偏差–欠擬合
train誤差遠小於cv誤差時:方差–過擬合

正則化

一般使用正則化防止過擬合,但是要選擇合適的λ ,需要思考與剛纔選擇多項式模型次數類似的問題。

例子
選擇一些列想要測試的λ 值(12個)。
1. 使用訓練集,訓練出12個不同成都正則化的模型
2. 用12個模型分別對交叉驗證集計算得出交叉驗證誤差(Jcv(θ) )
3. 選擇得出交叉驗證誤差最小的模型
4. 用3中的額模型對testset計算得到推廣(泛化)誤差。

4lambda-Jcv.png-144.2kB
* 當λ 較小時,訓練集誤差較小(過擬合)而交叉驗證集誤差較大
* 隨着λ 增加,訓練誤差不斷增加(欠擬合),而交叉驗證集誤差先減小後增加。

學習曲線–一個很好的合理檢驗

學習曲線用來判斷高偏差還是高方差。。
並且可以得出數據集大小m與訓練誤差之間的關係。

5學習曲線bias.png-101.3kB
5學習曲線variance.png-96.4kB

在高偏差(欠擬合)的情況下,增加訓練集不一定能獲得更好的效果;
但是在高方差(過擬合的情況下)增加訓練集會令Jcv 減小,而Jtrain 增加。能夠提高算法效果。

下一步

通過以上幾種方法,維度和正則化係數的選擇,可以發現算法是過擬合還是欠擬合,是方差大還是偏差大,由此可以選擇合適的維度和正則化係數以及數據集大小。

方法 解決
獲取更多訓練樣本 高方差
減少特徵數量 高方差
獲得更多特徵 高偏差
增加多現實特徵 高偏差
減少正則化程度 高偏差
增加正則化程度 高方差

偏斜類(skewed classes)

訓練集中有分產多的同一種類實例,而只有很少或沒有其他類的實例。
例如希望用算法預測癌症是否是惡性的,在訓練集中,只有0.5%的實例是惡性腫瘤。假設編寫一個算法判定全爲良性腫瘤,那麼僅看誤差相對於神經網絡的1%的誤差,這個算法只有0.5%的誤差。但是這樣肯定是不能僅用誤差作爲衡量依據。
* 正確肯定(TRUE Positive,TP):預測爲真,實際爲真
* 正確否定(TRUE Negative,TN):預測爲假,實際爲假
* 錯誤肯定(FALSE Positive,FP):預測爲真,實際爲假
* 錯誤否定(FALSE negative,FN):預測爲假,實際爲真
(TRUE:判斷正確;Positive:預測爲真;negative:預測爲假)

實際\預測 1 0
1 TP FN
0 FP TN

由以上四個情況可以計算兩個關鍵標準:
查準率(Precision):TP/(TP+FP)
查全率(Recall):TP/(TP+FN)

所以全判爲良性的算法,查全率爲0,因此也不能使用。
查準率:在所有預測有惡性腫瘤的病人中,實際上有惡性腫瘤的人的百分比,越高越好。
查全率:實際所有有惡性腫瘤的病人中,成功預測有惡性腫瘤的的病人的百分比,越高越好。

1.如果我們希望只在非常確信的情況下預測爲真,即我們希望更高的查準率,我們可以使用比0.5更大的閾值(LR概率判斷閾值),這樣會減少錯誤判斷爲惡性腫瘤的情況,同時會增加未能成功預測腫瘤爲惡性的情況
2.如果我們希望提高查全率,儘可能使可能是惡性腫瘤的病人得到進一步的篩查,那麼就要降低閾值。

我們可以將不同閾值情況下,RP關係繪製圖表。
6PR.png-31.4kB

F1值

F1Score:2PRP+R
通過F1值最高的情況確定PR的閾值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章