一套機器學習的診斷方案

2022-09-08 12:21:11 字數 1888 閱讀 6172

通過前面幾章的學習,我們已經掌握了一部分的機器學習的演算法,已經可以利用機器學習的知識去解決生活中的一些問題。但是我們作為初學者在利用機器學習的知識解決問題的時候不可避免地會遇到很多的問題,而面對這些問題,我們可能或多或少地能夠想到一些解決方案。例如:

1.獲取更多的資料用來訓練。

2.減少資料中的特徵數目。

3.增加資料中的特徵數目。

4.增加多項式的項數。

5.減少正則化懲罰項。

6.增大正則化懲罰項。

而面對這些解決方案,我們或許不知道到底該如何選擇,就有可能導致我們盲目地選擇乙個方法然後花了大量的時間和精力最後得到的效果卻不盡如意。而這一章的目的就是告訴我們如何高效地從一堆解決方案中選擇出我們這個模型最需要的方案,而不是隨機選擇然後浪費大量時間卻收效甚微。

在機器學習的過程之中,可能最常見的問題就是高偏差(high bias)和高方差問題(high variance),也就是我們通常所說的欠擬合和過擬合問題。而為了解決這一類問題,以前在特徵數量較少的時候可以把假設函式畫出來看看是否是有過擬合的問題,但是在通常情況下,假設函式一般是無法視覺化的。所以我們需要乙個更加有效的方式,那就是要把我們的資料分為訓練資料和測試資料(一般是7:3),通過測試資料的準確性來判斷是否出現了過擬合或者欠擬合的問題。

在這裡我已多項式擬合為例子。

我們把多項式的項數d看做是乙個變數,然後再取d=1-10進行訓練,最後在測試集上面看不同的d的測試集誤差就可以選擇最好的d。但是這裡同樣也會遇到乙個問題,如果僅僅是將資料分為訓練集和測試集的話就會導致無法科學地評判模型的泛化能力。所以為了解決這個問題,我們最好的方式就是將資料分為訓練集,交叉驗證集和測試集(比例一般為6:2:2)。在交叉驗證集裡面測試誤差,以評判模型的擬合問題,在測試集上評判模型的泛化能力。

於是最終我們的資料就被分為了這三個部分。即通過交叉驗證集的誤差來選擇模型的d到底為多少最好。而用測試集來評判模型的泛化能力。

除了用交叉集的誤差來大致判斷是否有擬合問題,我們還有乙個更加直觀有效的方式來判斷模型是否存在擬合問題。

如上圖所示,我們可以畫出來在不同的d的訓練誤差和交叉驗證集誤差。可以看出來,隨著d的增大訓練誤差越來越小,但是交叉驗證的誤差卻是先減後增,很容易就看出來在那個極值點後就發生了過擬合的問題,而開始d較小的時候就是欠擬合了。

和上面一樣,這裡的目的就是確定lambda和確定d是乙個道理

我們還是畫出這個影象,就可以輕鬆確定lambda了。

這個方法能夠幫助我們很快地確定模型到底是出現了高方差還是高偏差問題。

這是正常的學習曲線圖,就是錯誤關於訓練集大小的曲線。

上面兩張乙個是過擬合乙個是欠擬合,我們可以看出過擬合的曲線,到後面的時候兩條曲線的間隔還是比較大,這是因為過擬合了交叉驗證集下降的速度比較低,需要大量的資料才能解決過擬合的問題。而欠擬合的話,因為模型簡單,所以交叉驗證集和訓練集靠攏的速度較快,並且一直保持著較高的誤差值。

學習了這些系統診斷模型的方法,我們便可以很快地選擇正確的模型,以及引數並且診斷出模型到底是遇到了什麼問題。

一套機器學習的診斷方案

通過前面幾章的學習,我們已經掌握了一部分的機器學習的演算法,已經可以利用機器學習的知識去解決生活中的一些問題。但是我們作為初學者在利用機器學習的知識解決問題的時候不可避免地會遇到很多的問題,而面對這些問題,我們可能或多或少地能夠想到一些解決方案。例如 1.獲取更多的資料用來訓練。2.減少資料中的特徵...

一套策劃正確的網頁配色方案

網頁設計師策劃乙個 需要經過反覆多次的思考,而在決定網頁配色方案時同樣需要經過再三的思量。為了得到更好的策劃意見,組織者既應該與合作人員反覆進行集體討論,還應該找一些風格類似的成功站點進行技術分析,乙個大型站點是由幾層甚至數十層的鏈結和上百上千種不同風格的網頁所構成,所以在需要的時候應該繪製乙個合理...

一套很好的C 學習課件

c 學習網頁課件鏈結 第一講 c 簡介 第二講 c 對c的擴充 1 第三講 c 對c的擴充 2 第四講 程式設計方法 第五講 類的成員 第六講 物件的簡單應用 第七講 構造析構函式 第八講 陣列與指標 第九講 資料的保護 第十講 賦值和複製 第十一講 運算子過載 第十二講 過載應用 第十三講 資料間...