1. 程式人生 > >邏輯回歸和正規化

邏輯回歸和正規化

線性回歸 fun class alt cal option image 參數 就會

邏輯回歸(logistic regression)

1.用來解決歸類問題(只是由於歷史上的原因取了回歸的名字)

2.二分歸類(binary classification)

  • 定義:對於輸入,輸出值不連續,而是兩個離散的值,eg:{0,1}
  • 方法:利用線性回歸,將大於0.5的輸出預測值設為1,小於0.5的輸出預測值設為0.(目前不可行,因為歸類問題不是線性函數,所以引入S型函數(Sigmoid Function)/邏輯函數(logistic function))
  • Sigmoid Function / logistic function

技術分享圖片

z>=0時g>=0.5,z<0時g<0.5; z-> -∞,g->0; z-> +∞,g->1

技術分享圖片, 技術分享圖片, 技術分享圖片

h(x)為輸出值為1的概率:

技術分享圖片

  • 為了得到離散的歸類,假設:

技術分享圖片,所以有:

技術分享圖片

  • 決策邊界(decision boundry):將y=0和y=1的區域分開的那條線(對應上面來說就是θ‘x=0那個方程)
  • 代價方程(cost function):

技術分享圖片

合並上面兩個式子:

技術分享圖片

再向量化表示:

技術分享圖片

畫圖是:

技術分享圖片 技術分享圖片 技術分享圖片

  • 梯度下降(gradient decent):

技術分享圖片

求偏導可得:(和之前線性回歸的結果一樣)

技術分享圖片

向量化表示為:

技術分享圖片

  • 比梯度下降更優的求θ的方法:

   Conjugate gradient, BFGS, L-BFGS

用octave內部的函數庫來調用這些方法,步驟:

    1.寫出代價函數和它的偏導:
   function [jVal, gradient] = costFunction(theta)
     jVal = [...code to compute J(theta)...];
     gradient = [...code to compute derivative of J(theta)...];
   end
2.調用fminunc函數,optimset是傳給該函數的參數
   options = optimset(‘GradObj‘, ‘on‘, ‘MaxIter‘, 100);
   initialTheta = zeros(2,1);
   [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

3.多類歸類(multiclass classification):

  • 結果為多個類別,y={0,1,....n}
  • 這種情況下,可以將問題分為n+1個二分歸類問題,選擇一個類,將其他所有類看成一個類,利用二分歸類,求出每個h(x),再求最大值

技術分享圖片

正規化(regularization)

1.正規化用來解決過擬合問題(overfitting),適用於線性回歸和邏輯回歸問題。

延伸:

  • h函數太簡單:欠擬合,高偏差(underfitting,high bias)
  • h函數太復雜:過擬合,高方差(overfitting,high variance)
  • 解決過擬合方法有:減少參數(人工進行參數選擇或者用特定的參數選擇算法)、正規化

2.正規化後的代價函數:

技術分享圖片 (λ是正規化參數)

演示:https://www.desmos.com/calculator/1hexc8ntqp

eg:

h(x)= 技術分享圖片

如果想要減少theta3,theta4參數的影響,代價函數可以寫成如下形式:

技術分享圖片

後面的兩項參數乘以很大的數,這樣為了得到代價的最小值,後兩個參數就得很小,趨近於0,這樣h函數中的那兩個參數就

會很小,相當於消去了參數,所以函數就會變得平緩了,從而不會過擬合

3.正規化線性回歸:

  • 梯度下降變為:(多了λ項)

技術分享圖片

移項也可以寫成:

技術分享圖片

可以看出,和沒有正規化相比,只是每次叠代時,theta都變為原來的(1-α*λ/m)<1倍

  • 不叠代的nomal equation為:

技術分享圖片 ( L=(n+1)*(n+1) )

4.正規化邏輯回歸:

  • 代價函數為:(多了λ項)

技術分享圖片 (註意沒有第0項)

  • 梯度下降:(和線性回歸正規化的一樣)

技術分享圖片

邏輯回歸和正規化