逻辑回归与线性回归
1. 線性回歸
1.1概念
對于一組特征,使用線性方程來進行擬合,對結果進行預測,公式如下:
hθ(X)=θTX=θ0X0+θ1X1+???+θnXnθ=(θ0,θ1,θ2,...,θn)X=(X0,X1,X2,...,Xn)其中X1=1h_\theta (X)= \theta^TX = \theta_0X_0+\theta_1X_1+···+\theta_nX_n \\ \theta=(\theta_0,\theta_1,\theta_2,...,\theta_n) \\ X=(X_0,X_1,X_2,...,X_n) \\ 其中X_1=1 hθ?(X)=θTX=θ0?X0?+θ1?X1?+???+θn?Xn?θ=(θ0?,θ1?,θ2?,...,θn?)X=(X0?,X1?,X2?,...,Xn?)其中X1?=1
1.2代價函數
線性回歸選取的損失函數是均方誤差,均方誤差表示所有樣本到該預測函數的歐式距離最小,代價函數如下:
J(θ)=12m∑i=1m(hθ(X)?yi)2J(\theta)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(X)-y_i)^2 J(θ)=2m1?i=1∑m?(hθ?(X)?yi?)2
對每一個θ\thetaθ進行求導,便可以得到θ\thetaθ的值:
?J?θi=1m∑i=1m(hθ(Xi)?yi)Xi\frac{\partial J}{\partial \theta_i}=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(X_i)-y_i)X_i ?θi??J?=m1?i=1∑m?(hθ?(Xi?)?yi?)Xi?
更新參數:
θ:=θ?α?J?θi\theta:=\theta-\alpha\frac{\partial J}{\partial \theta_i} θ:=θ?α?θi??J?
其中α\alphaα表示學習率
1.3如何選取α,如何停止更新權值
通常α\alphaα取0.001,根據實驗結果依次增加三倍,比較實驗結果。0.001,0.003,0.01,0.03,0.1
θ\thetaθ更新到什么時候停止?
每次更新后,帶入θ\thetaθ值可以求得J(θ)J(\theta)J(θ)的值,比較當前的J(θ)J(\theta)J(θ)與上一次的值,如果變化很小,則可認為達到收斂;或者不斷增加迭代次數,可視化觀察J(θ)J(\theta)J(θ)的曲線圖。
1.4 正則化
使用L1范數(權值為非0的權值和)稱為Lasso回歸,使用L2范數(權值平方和)稱為嶺回歸。正則化項稱為懲罰函數,目的解決過擬合問題,代價函數變為:
J(θ)=12m∑i=1m(hθ(Xi)?yi)2+λ∑j=1nθj2J(\theta) =\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(X_i)-y_i)^2 + \lambda\sum_{j=1}^n\theta_j^2 J(θ)=2m1?i=1∑m?(hθ?(Xi?)?yi?)2+λj=1∑n?θj2?
這里使用的時L2范數J(θ)J(\theta)J(θ)稱為嶺回歸
2 邏輯回歸
2.1 概念
邏輯回歸由線性回歸轉變而來,線性回歸用來預測具體的值,如果遇到分類問題如何解決呢?這里還是使用線性回歸來擬合數據,然后再對其預測值進行0 1 映射(使用sigmod函數),因此得到的邏輯回歸模型為:
hθ(X)=11+e?zz=θTXh_\theta(X) = \frac{1}{1+e^{-z}} \\ z=\theta^TX hθ?(X)=1+e?z1?z=θTX
sigmod函數就是形式S形狀的函數,存在上限、下限。
2.2代價函數
這里可以均方誤差作為代價函數,但是圖像非凸函數,使用梯度下降很難求得其收斂值,因此這里借助于極大似然估計的概念來設計邏輯回歸的代價函數:對于二分類:
似然函數:
L(x)=px?(1?p)1?xx=0,1L(x)=p^x*(1-p)^1-x \\ x=0,1 L(x)=px?(1?p)1?xx=0,1
對數形式:
log?L(x)=xlog?p+(1?x)log?(1?p)\log L(x)=x\log p+(1-x)\log(1-p) logL(x)=xlogp+(1?x)log(1?p)
對于邏輯回歸本身求得就是偏向某類的概率hθ(x)h_\theta(x)hθ?(x):邏輯回歸似然函數:
L(x)=∏i=1mh(xi)yi?(1?hθ(xi)1?y)L(x)=\prod_{i=1}^m h(x_i)^{y_i}*(1-h_\theta(x_i)^{1-y}) L(x)=i=1∏m?h(xi?)yi??(1?hθ?(xi?)1?y)
對數形式:這里求得極大似然估計,前面取符號,即可求得滿足代價函數的最小值,于是得到邏輯回歸的代價函數如下:
log?L(x)=∑i=1myilog?(hθ(xi))+(1?yi)log?(1?hθ(xi))\log L(x) = \sum_{i=1}^m y_i \log (h_\theta(x_i)) + (1-y_i) \log(1-h_\theta(x_i)) logL(x)=i=1∑m?yi?log(hθ?(xi?))+(1?yi?)log(1?hθ?(xi?))
1m\frac{1}{m}m1?不影響函數的功能。故求得對θ\thetaθ的偏導為:
?J?θi=1m∑i=1mxi?(hθxi?yi)\frac{\partial J}{\partial \theta_i}=\frac{1}{m} \sum_{i=1}^m x_i * (h_\theta x_i - y_i) ?θi??J?=m1?i=1∑m?xi??(hθ?xi??yi?)
更新梯度:
θ:=θ?α?J?θi\theta:=\theta-\alpha\frac{\partial J}{\partial \theta_i} θ:=θ?α?θi??J?
2.3 正則化
與線性回歸相似,正則化可以使用L1范數、L2范數,這里使用L2范數得到的代價函數為:
J(θ)=?1m∑i=1m[yilog?(hθ(xi))+(1?yi)log?(1?hθ(xi))+λ∑j=1nθj2]J(\theta) = - \frac{1}{m} \sum_{i=1}^m\left[ y_i\log (h_\theta(x_i)) + (1-y_i)\log (1-h_\theta(x_i)) + \lambda\sum_{j=1}^n\theta_j^2\right] J(θ)=?m1?i=1∑m?[yi?log(hθ?(xi?))+(1?yi?)log(1?hθ?(xi?))+λj=1∑n?θj2?]
總結
- 上一篇: 怎么区分千兆路由器和百兆路由器路由器怎么
- 下一篇: elasticsearch 根据条件更新