機器學習(Coursera吳恩達)(五)
標籤(空格分隔): 機器學習
我們要怎麼樣選擇哪些方法,來改善我們的學習算法。
1. 嘗試減少特徵數量
2. 嘗試獲得更多的特徵
3. 嘗試增加多項式特徵
4. 嘗試減少正則化程度
5. 嘗試增加正則化程度
6. ……
這些方法,應該有判別的方法進行選擇,而不是瞎選。
評估一個假設
如何避免過擬合和欠擬合?
將數據集分爲三部分:Train_set, Test_set, CrossValidation_set.
模型選擇
假設有多個階數不同的模型:
選擇方法:
1. 使用訓練集訓練出10個模型
2. 分別對cv_set計算得到交叉驗證誤差(代價函數的值 )
3. 選取代價函數最小的模型
4. 用3.中選擇出的模型對test_set算出推廣誤差( )
偏差和方差
偏差大–欠擬合
方差大–過擬合
train誤差和cv誤差相近時:偏差–欠擬合
train誤差遠小於cv誤差時:方差–過擬合
正則化
一般使用正則化防止過擬合,但是要選擇合適的 ,需要思考與剛纔選擇多項式模型次數類似的問題。
例子
選擇一些列想要測試的 值(12個)。
1. 使用訓練集,訓練出12個不同成都正則化的模型
2. 用12個模型分別對交叉驗證集計算得出交叉驗證誤差( )
3. 選擇得出交叉驗證誤差最小的模型
4. 用3中的額模型對testset計算得到推廣(泛化)誤差。
* 當 較小時,訓練集誤差較小(過擬合)而交叉驗證集誤差較大
* 隨着 增加,訓練誤差不斷增加(欠擬合),而交叉驗證集誤差先減小後增加。
學習曲線–一個很好的合理檢驗
學習曲線用來判斷高偏差還是高方差。。
並且可以得出數據集大小m與訓練誤差之間的關係。
在高偏差(欠擬合)的情況下,增加訓練集不一定能獲得更好的效果;
但是在高方差(過擬合的情況下)增加訓練集會令 減小,而 增加。能夠提高算法效果。
下一步
通過以上幾種方法,維度和正則化係數的選擇,可以發現算法是過擬合還是欠擬合,是方差大還是偏差大,由此可以選擇合適的維度和正則化係數以及數據集大小。
方法 | 解決 |
---|---|
獲取更多訓練樣本 | 高方差 |
減少特徵數量 | 高方差 |
獲得更多特徵 | 高偏差 |
增加多現實特徵 | 高偏差 |
減少正則化程度 | 高偏差 |
增加正則化程度 | 高方差 |
偏斜類(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關係繪製圖表。
F1值
通過F1值最高的情況確定PR的閾值。