機器學習系統設計和診斷方法學習總結

2021-08-28 23:31:12 字數 1450 閱讀 3151

過擬合:對訓練資料擬合精準,但是對未知的資料**能力差

如何應對?

2、丟棄一些不能幫助正確**的特徵。

2.1、手工選擇丟棄特徵

2.2、使用模型選擇方法(如pca)

3、正則化。保留所有的特徵,減少引數的大小

預防過擬合的方法步驟:

1、打亂資料集;2、劃分資料:70%訓練集 + 30%測試集

幫助模型選擇的方法:

交叉驗證:1、打亂資料集;2、劃分資料:60%訓練集 + 20%交叉驗證集 + 20%測試集

如何選擇模型?

1、預先訓練10個模型

2、計算10個模型的交叉訓練集的**誤差

3、選取代價函式最小的模型

4、用步驟3選出的模型對測試集計算得出推廣誤差

診斷偏差和方差

高偏差和高方差的問題基本上是欠擬合和過擬合的問題

1、jtraing(訓練集誤差)和jcv(交叉驗證集誤差)都很大:偏差/欠擬合

2、jtraing小,jcv遠遠大於jtraing:方差/過擬合

正則化和偏差方差

正則化因子lambda的選擇方法:

1、使用訓練集訓練12個不同程度正則化的模型

2、計算12個模型的交叉訓練集的**誤差

3、選取代價函式最小的模型

4、用步驟3選出的模型對測試集計算得出推廣誤差

lambda較小時:

jtraing很小,而jcv較大:方差/過擬合

隨著lambda的增大:

jtraing不斷增大(欠擬合),jcv先減小後增大

因此,應該選擇適中的lambda,不能過大或過小

學習曲線:即訓練樣本數目m和jtraing、jcv的關係圖

在高偏差/欠擬合的情況下,增加訓練集樣本數不一定能夠提公升模型能力,應該考慮切換模型

在高方差/過擬合的情況下,增加訓練集樣本數可以一定程度的提公升模型能力

總結一下:

欠擬合/偏差大:

現象:jtrain較大,同時jcv/jtest較大

原因:模型複雜度不夠,對訓練資料集擬合程度較低;特徵數量n相比訓練樣本數量m較少;正則化因子lambda較大

解決辦法:

1、使用數次較高的多項式特徵,增加模型複雜度

2、增加特徵數量n

3、減小正則化因子lambda的值

過擬合/方差大:

現象:jtrain較小,同時jcv/jtest較大

原因:模型複雜度過高,對訓練資料集擬合非常好,但是對測試資料集效果差;樣本數量m相比特徵數量n較少;正則化因子lambda較小

解決辦法:

1、降低模型模型複雜度,降低多項式特徵次數

2、減少影響較小的特徵數量/增加樣本數量

3、增大正則化因子lambda

針對神經網路:

模型效果:大神經網路+正則化 > 小神經網路

選擇隱藏層數目時,從1層開始逐層增加,選擇交叉驗證集代價函式最小的網路。

機器學習 診斷偏差和方差

如果乙個機器學習演算法表現不理想,要麼是欠擬合,要麼是過擬合。越高次方越能代表我們的訓練集,但能適應訓練集並不代表能推廣至一般情況。高偏差 訓練誤差很大,訓練誤差與測試誤差很小,隨著樣本增多,訓練誤差增大。高方差 訓練誤差很小,訓練誤差與測試誤差差距很大,隨著樣本增多,測試誤差會減小。訓練集誤差和交...

機器學習演算法診斷

如果我們在某個資料集上訓練得到乙個模型假設 h x 而當我們將這個模型應用到乙個新的資料集上,或者說用這個模型來做 的時候,發現這個模型的 錯誤很大,那麼我們應該如何做,採取什麼辦法來 改善 模型 的效能呢?辦法就是,對演算法進行診斷。機器學習演算法的診斷,可以看做是對 模型或者演算法 做的乙個測試...

機器學習系統設計(三)

機器學習的資料 假設特徵變數x rn 1,且有足夠的資訊可以測試精確地 y的值。在使用含有非常多的引數的學習演算法 如 含非常多的特徵變數的線性回歸或者邏輯回歸 隱藏層啟用單元數非常多的神經網路 時,其可以保證低偏差,即不會出現欠擬合問題,以及其jtrain 的值也非常小。在此基礎上,我們使用非常大...