1. 程式人生 > >機器學習筆記:線性迴歸、邏輯斯蒂迴歸推導

機器學習筆記:線性迴歸、邏輯斯蒂迴歸推導

參考書籍:《統計學習方法》,cs229,其他

1、線性迴歸

1.1、線性迴歸表示

線性迴歸屬於監督學習問題,輸入X與輸出Y成線性關係,只要我們得到了這個具體的關係,那麼對於待預測的資料X我們便可以知道Y的值。現在就來求這個線性關係

先定義好變量表示。記輸入變量表示為 X X ,輸出變量表示為 Y

Y ,訓練集為 { ( x 1 , y 1
) , ( x 2 , y 2 )
, . . . , ( x n , y n ) } \{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}
,特徵向量 x i x_i 是m維的(m個特徵)表示為 x i = ( x i 1 , x i 2 , . . . , x i m ) T x_i=(x_i^1,x_i^2,...,x_i^m)^T x i j x_i^j 表示第 i i 個輸入變數的第 j j 個特徵那麼線性關係可以表示為:

y = θ 0 + θ 1 x 1 + . . . + θ n x n y=\theta_0+\theta_1 x_1+...+\theta_n x_n

我們記 x 0 = 1 x_0=1 那麼就可以表示為 h θ ( x ) = θ T x h_\theta(x)=\theta^Tx

1.2、線性迴歸學習

線性迴歸的學習也就是求解引數 θ \theta ,為了使預測結果儘量準確,我們需要使得對訓練集擬合的較好,定義如下的損失函式,直觀上也很容易理解:

J ( θ ) = 1 2 i = 1 n ( h θ ( x i ) y i ) 2 J(\theta) = \frac{1}{2} \sum\limits_{i=1}^{n}(h_\theta(x_i)-y_i)^2

顯然 J J 越小越好,所以我們需要求 min J ( θ ) \min J(\theta) ,此時對應的 θ \theta 正是我們所需要的,自然也就求出來了模型。 這裡使用梯度下降法來求解(假如你現在在山頂記住 j j ,你要下山打算每次跨 α \alpha 步,如何下的最快?答案是沿著梯度方向走也就是切線方向,每跨一次位置成了 j α j-\alpha*梯度 ,繼續用 j j 表示那麼就是 θ j : = j α \theta_j :=j-\alpha*梯度 ),用公式表示如下。

θ j : = θ j α J ( θ ) θ j \theta_j := \theta_j - \alpha \frac{\partial J(\theta)}{\partial \theta_j}

接下來進行簡單的求導即可:

J ( θ ) θ j = i = 1 n ( h θ ( x i ) y i ) h θ ( x i ) θ j = i = 1 n ( h θ ( x i ) y i ) x i j \frac{\partial J(\theta)}{\partial \theta_j} \\ = \sum\limits_{i=1}^{n}(h_\theta(x_i)-y_i) \frac{\partial h_\theta(x_i)}{\partial \theta_j} \\=\sum\limits_{i=1}^{n}(h_\theta(x_i)-y_i)x_i^j

=> θ j : = θ j α i = 1 n ( h θ ( x