一、綱要
欠擬合和過擬合
代價函式正則化
正則化線性回歸
正則化邏輯回歸
二、內容詳述
1、欠擬合和過擬合
欠擬合,也叫高偏差,就是沒有很好的擬合資料集的情況。如下圖中的左圖所示
過擬合,也叫高方差,就是雖然高階多項式可以完美的擬合所有的資料,但會導致函式過於龐大,變數太多而我們又沒有足夠的資料來約束這個模型,這就是過度擬合。過度擬合的原因,簡單來說就是過多的特徵變數和過少的資料集。如下圖右。
過擬合帶來的效果就是,雖然可以完美的擬合現有的資料集,但是在**新資料方面卻表現的不盡如人意。所以最適合的還是中間的方式。
當然上面是線性回歸的過擬合問題,邏輯回歸中也存在這樣的問題,就以多項式理解,階數越高,擬合程度越好,但是**方面就表現的很差。那麼如何解決這些問題呢?這裡就要引入「正則化」的概念!
2、代價函式正則化
以第乙個問題中的線性回歸過擬合為例,我們應該怎樣用正則化解決
這個問題呢?我們知道如果讓高次項係數為0的話,我們就可以比較好的進行擬合。所以我們假設代價函式是
,然後在求解代價函式j最小化的
過程中我們就會使θ3、θ4盡可能的小,這樣的話高次項就趨於0,就能很好的解決這個問題。這就給了我們正則化演算法的啟示。
我們在代價函式j後面加入乙個正則項,代價函式就變為
,其中λ為正則化引數。需要注意的是,這裡的正則項θ的θj是從j=1開始到j=n為止,而不包括θ0,雖然加與不加θ0的結果相差不大,但是按照慣例一般θ0單獨考慮。所以我們在使用梯度演算法的時候θ0的引數更新要與其他θj分開考慮。
這裡需要強調的一點是,正則化引數的選擇非常重要,如果λ過大,那麼就會使得θj(j=1,2,3...n)都基本趨於0,也就是只剩下hθ(x)=θ0,就如下圖的情況,這樣就變成了欠擬合的問題(too big lamda),而當λ選擇合適的話,過擬合的曲線(unregulated)就會變成良好的regulated
3、正則化線性回歸
正則化線性回歸的代價函式j為
,在使用梯度下降法之前需要對j進行偏導,
,然後帶入梯度下降法得到:
,之前說過這裡θ0的引數更新要與其他θj分開考慮的原因。對θj進行調整得到
,這個式子是不是很熟悉?跟之前的梯度下降法引數更新公式很像,區別只是θj變成了θj(1-α*(λ/m)),這裡1-α*(λ/m)就是乙個小於1的常數,可能是0.99或0.98.這裡可以看出正則化線性回歸的梯度下降演算法的變化在於,每次都在原有的更新規則的基礎上令θ額外減去乙個值。
之前我們說的線性回歸還有一種正規方程解法,我們同樣可以對線性回歸正規方程進行正則化,方法為
x = [(x(0))t (x(1))t (x(2))t ... (x(n))t]t,y=[y(1) y(2) y(3) ... y(m)]t,x是m*(n+1)維矩陣,y為m*1維矩陣
圖中矩陣的尺寸為(n+1)*(n+1)
4、正則化邏輯回歸
代價函式為
,用梯度下降法進行引數更新得到的方程為:
這裡雖然形式跟線性回歸的梯度下降法一樣,但是由於hθ(x)的不同,所以兩者還是有很大差別
斯坦福機器學習筆記五
有時候發現訓練出來的模型誤差很大,會有很多解決辦法。例如 增加更多的訓練樣本,減少特徵數目,增加特徵數目,增加多項式特徵,減小或增大正則化引數 的值 但是這些嘗試往往會浪費很多時間,所有這裡提出了一種機器學習診斷法。1 資料的分配 將資料分為三部分,訓練集 60 交叉驗證集 20 和測試集 20 利...
斯坦福 ios學習 筆記(一)
一 ios系統架構 1.core os 核心作業系統層,unix核心,主要有電源管理,檔案系統,安全保護等。2.core service 核心服務層,主要有網路請求,多執行緒等操作,資料庫等。4.cocoa touch 觸控層 主要有ui,地圖,警示框,webview,camera。二 關於mvc ...
斯坦福 ios學習 筆記(二)
1.alloc用於記憶體分配,init用於初始化記憶體。2.當我們只是區域性使用數字型別的時候,不要用nsnumber,因為它只是將其傳遞給方法。3.nsninteger和unsigned int是一回事。nsninteger是64位無符號整型。4.作用是讓所以字串為字串物件。5.containso...