1. 程式人生 > >機器學習筆記——機器學習建議與誤差分析

機器學習筆記——機器學習建議與誤差分析

建議

在實踐過程中我們經常會發現我們的建模不合適,那麼這種情況我們應該對我們模型的引數進行調整呢

評估假設

我們首先要做的就是對我們建立的模型進行評估,來判斷模型擬合是否合適。我們將利用訓練集求出來的網路引數θ應用在測試集上得到的誤差叫做測試集誤差,這個誤差越小代表建模越合適

驗證集

為了選擇一個合適的模型,我們需要嘗試多種多項式來保證我們既不會過擬合也不會欠擬合。方法就是求出各種假設函式的測試集誤差來選擇最小誤差對應的假設函式

但是這種用根據測試集誤差選出來的假設函式很可能是對一般誤差的一種樂觀估計,因此我們還需要一個不想關的測試集來對這個假設函式進行函式。為此我們將資料分為訓練集、驗證集、測試集三個部分。選擇引數的過程我們在驗證集上做

偏差與方差

我們對欠擬合與過擬合又有另一個名字:高偏差與高方差

我們可以看出當假設函式由低次到高次漸變的過程中測試集誤差與訓練集誤差的變化情況。也正是從這個曲線中我們可以判斷我們的假設函式是過擬合還是欠擬合了。高偏差對應的是測試集誤差與訓練集誤差都高,高方差對應的是測試集誤差高,訓練集誤差低

正則化

我們之前講到過正則化,正則化前面的係數也跟過擬合/欠擬合有關,正則化係數越大,代表著欠擬合越嚴重;係數越小代表過擬合嚴重

同樣我們可以像選擇假設函式多項式最高次冪的方法一樣不斷調整正則化係數λ來取得最合適的擬合效果

同樣我們也可以根據訓練集誤差和測試集誤差來判斷λ是過大還是過小

學習曲線

除了上述方法,我們還可以通過學習曲線來判斷擬合效果

對於高偏差來說,隨著訓練集數量增加,測試集誤差與訓練集誤差將靠的很近,因為多項式的次冪限制了曲線繼續演進,從而使測試集誤差與訓練集誤差都維持在一個較高的值

對於高方差曲線來說,訓練集誤差維持在一個較低的值,測試集誤差維持在較高的值,但是隨著訓練集增加,這個間隔會越來越小

下一步

在有了之前的鋪墊以後我們就可以很好的決定下一步做什麼了,我們可以根據曲線是過擬合還是欠擬合來進行選擇下一步嘗試方法

大資料原理

我們經常聽到說“It's not who has the best algorithm that wins, its who has the most data.”那我們應該如何構建一個高精度的系統呢,保證大資料能夠應用在好的演算法上呢?首先我們得保證我們已經獲得一組資料中足夠多的特徵,判斷標準就是人類是否能根據這些特徵做出判斷

足夠多的特徵保證了我們不會欠擬合,也就意味著訓練集誤差會比較低,之後我們通過增大資料量,來使測試集誤差逼近訓練集誤差來保證我們的演算法有很好的精度與普適性

 

誤差分析

當我們要對一個很複雜的模型建模的時候我們往往是先用幾天的時間建立一個很簡單的模型來判斷誤差的大小,再通過畫出學習曲線等方法來決定是否需要增加特徵或是增加測試集數量等等

不對稱分類

對於兩種十分不對稱的分類,我們採用傳統的誤差分析(即錯誤率)不能很好地驗證演算法的有效性。比如我們得到了一個錯誤概率為1%的演算法,但是實際上只有0.5%的病人,那麼我們只需要做出所有人都不得病的判斷就能獲得錯誤率為0.5%的演算法,但是這顯然是一種不合理的演算法。這也就意味著我們需要一個新的評判標準

我們可以用精準率與召回率這兩個引數來進行度量。精準率代表判斷為病人的人中真正得病的人的比例;召回率代表實際得病的人中被診斷出有病的人的比例

我們可以通過調整假設函式的閾值來調整這兩者的值,很多時候我們需要在這二者中做出一個權衡

有兩個度量標準很多時候讓我們不知道如何選擇, 為了解決這個問題,我們有F分的方法將二者融合為一個標準