一、线性回归和逻辑回归
文章目錄
- 一、什么是機器學習
- 二、線性回歸
- 2.1 線性回歸的表達式
- 三、邏輯回歸
- 3.1 邏輯回歸的損失函數
- 3.2 邏輯回歸實現多分類
- 四、LR的特點
- 五、 為什么邏輯回歸比線性回歸好
- 六、 LR和SVM的關系
一、什么是機器學習
利用大量的數據樣本,使得計算機通過不斷的學習獲得一個模型,用來對新的未知數據做預測。
- 有監督學習(分類、回歸)
同時將數據樣本和標簽輸入給模型,模型學習到數據和標簽的映射關系,從而對新數據進行預測。
- 無監督學習(聚類)
只有數據,沒有標簽,模型通過總結規律,從數據中挖掘出信息。
- 強化學習
強化學習會在沒有任何標簽的情況下,通過先嘗試做出一些行為得到一個結果,通過這個結果是對還是錯的反饋,調整之前的行為,就這樣不斷的調整,算法能夠學習到在什么樣的情況下選擇什么樣的行為可以得到最好的結果。
就好比你有一只還沒有訓練好的小狗,每當它把屋子弄亂后,就減少美味食物的數量(懲罰),每次表現不錯時,就加倍美味食物的數量(獎勵),那么小狗最終會學到一個知識,就是把客廳弄亂是不好的行為。
二、線性回歸
利用大量的樣本D=(xi,yi)i=1ND={(x_i,y_i)}_{i=1}^ND=(xi?,yi?)i=1N?,通過有監督的學習,學習到由x到y的映射fff,利用該映射關系對未知的數據進行預估,因為y為連續值,所以是回歸問題。
-
單變量情況:
-
多變量情況:
二維空間的直線,轉化為高維空間的平面
2.1 線性回歸的表達式
機器學習是數據驅動的算法,數據驅動=數據+模型,模型就是輸入到輸出的映射關系。
模型=假設函數(不同的學習方式)+優化
1. 假設函數
線性回歸的假設函數(θ0\theta_0θ0?表示截距項,x0=1x_0=1x0?=1,方便矩陣表達):f(x)=θ0x0+θ1x1+θ2x2...+θnxnf(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2...+\theta_nx_nf(x)=θ0?x0?+θ1?x1?+θ2?x2?...+θn?xn?
向量形式(θ,x\theta,xθ,x都是列向量):f(x)=θTxf(x)=\theta^Txf(x)=θTx
2. 優化方法
監督學習的優化方法=損失函數+對損失函數的優化
3. 損失函數
如何衡量已有的參數θ\thetaθ的好壞?
利用損失函數來衡量,損失函數度量預測值和標準答案的偏差,不同的參數有不同的偏差,所以要通過最小化損失函數,也就是最小化偏差來得到最好的參數。
映射函數:hθ(x)h_{\theta}(x)hθ?(x)
損失函數:J(θ0,θ1,...,θn)=12m∑i=1m(hθ(x(i))?y(i))2J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2J(θ0?,θ1?,...,θn?)=2m1?i=1∑m?(hθ?(x(i))?y(i))2
解釋:因為有m個樣本,所以要平均,分母的2是為了求導方便
損失函數:凸函數
4. 損失函數的優化
損失函數如右圖所示,是一個凸函數,我們的目標是達到最低點,也就是使得損失函數最小。
多元情況下容易出現局部極值
求極值的數學思想,對公式求導=0即可得到極值,但是工業上計算量很大,公式很復雜,所以從計算機的角度來講,求極值是利用梯度下降法。
① 初始位置選取很重要
② 復梯度方向更新,二維情況下,函數變換最快的方向是斜率方向,多維情況下就成為梯度,梯度表示函數值增大的最快的方向,所以要在負梯度方向上進行迭代。
③ θ\thetaθ的更新公式如上圖,每個參數θ1,θ2...\theta_1,\theta_2...θ1?,θ2?...都是分別更新的
高維情況:梯度方向就是垂直于登高線的方向
參數更新示例:
對每個theta都進行更新:
學習率:
① 學習率太大,會跳過最低點,可能不收斂
② 學習率太小收斂速度過慢
5. 過擬合和欠擬合
過擬合的原因:
① 如果我們有很多的特征或模型很復雜,則假設函數曲線可以對訓練樣本擬合的非常好,學習能力太強了,但是喪失了一般性。
② 眼見不一定為實,訓練樣本中肯定存在噪聲點,如果全都學習的話肯定會將噪聲也學習進去。
過擬合造成什么結果:
過擬合是給參數的自由空間太大了,可以通過簡單的方式讓參數變化太快,并未學習到底層的規律,模型抖動太大,很不穩定,variance變大,對新數據沒有泛化能力。
6. 利用正則化解決過擬合問題
正則化的作用:
① 控制參數變化幅度,對變化大的參數懲罰
② 限制參數搜索空間
添加正則化的損失函數:
J(θ0,θ1,...,θn)=12m∑i=1m(hθ(x(i))?y(i))2+λ2m∑j=1nθj2J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2+ \frac{\lambda}{2m}\sum_{j=1}^n \theta_j^2 J(θ0?,θ1?,...,θn?)=2m1?i=1∑m?(hθ?(x(i))?y(i))2+2mλ?j=1∑n?θj2?
m:樣本有m個
n:n個參數,對n個參數進行懲罰
λ\lambdaλ:對誤差的懲罰程度,λ\lambdaλ越大對誤差的懲罰越大,容易出現過擬合,λ\lambdaλ越小,對誤差的懲罰越小,對誤差的容忍度越大,泛化能力好。
三、邏輯回歸
監督學習,解決二分類問題。
分類的本質:在空間中找到一個決策邊界來完成分類的決策
邏輯回歸:線性回歸可以預測連續值,但是不能解決分類問題,我們需要根據預測的結果判定其屬于正類還是負類。所以邏輯回歸就是將線性回歸的(?∞,+∞)(-\infty,+\infty)(?∞,+∞)結果,通過sigmoid函數映射到(0,1)(0,1)(0,1)之間。
線性回歸決策函數:hθ(x)=θTxh_{\theta}(x)=\theta^Txhθ?(x)=θTx
將其通過sigmoid函數,獲得邏輯回歸的決策函數:hθ(x)=11+e?θTxh_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}}hθ?(x)=1+e?θTx1?
為什么使用sigmoid函數:
① 可以對(?∞,+∞)(-\infty,+\infty)(?∞,+∞)結果,映射到(0,1)(0,1)(0,1)之間,作為概率。
② x<0,sigmoid(x)<12;x>0,sigmoid(x)>12x<0,sigmoid(x)<\frac{1}{2};x>0,sigmoid(x)>\frac{1}{2}x<0,sigmoid(x)<21?;x>0,sigmoid(x)>21?,可以將12\frac{1}{2}21?作為決策邊界。
③ 數學特性好,求導容易:g′(z)=g(z)?(1?g(z))g'(z)=g(z)\cdot(1-g(z))g′(z)=g(z)?(1?g(z))
3.1 邏輯回歸的損失函數
線性回歸的損失函數為平方損失函數,如果將其用于邏輯回歸的損失函數,則其數學特性不好,有很多局部極小值,難以用梯度下降法求最優。
邏輯回歸損失函數:對數損失函數
解釋:如果一個樣本為正樣本,那么我們希望將其預測為正樣本的概率p越大越好,也就是決策函數的值越大越好,則logp越大越好,邏輯回歸的決策函數值就是樣本為正的概率;
如果一個樣本為負樣本,那么我們希望將其預測為負樣本的概率越大越好,也就是(1-p)越大越好,即log(1-p)越大越好。
為什么要用log:
樣本集中有很多樣本,要求其概率連乘,概率為(0,1)間的數,連乘越來越小,利用log變換將其變為連加,不會溢出,不會超出計算精度。
邏輯回歸損失函數:
?J(θ)?θj=1m[∑i=1m(hθ(x(i))?y(i))xj(i)]\frac{\partial J(\theta)}{\partial \theta_j}=\frac{1}{m}[\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}]?θj??J(θ)?=m1?[∑i=1m?(hθ?(x(i))?y(i))xj(i)?]
3.2 邏輯回歸實現多分類
- 一對一(one vs one)
一對一分類,每兩個類之間構建一個分類器,共需要N(N?1)2\frac{N(N-1)}{2}2N(N?1)?個分類器
- 一對多(one vs rest)
一對多分類器,每個分類器判斷是三角形還是不是三角形,共需要N個分類器。
四、LR的特點
可解釋性高,工業中可控度高。
五、 為什么邏輯回歸比線性回歸好
雖然邏輯回歸能夠用于分類,不過其本質還是線性回歸。它僅在線性回歸的基礎上,在特征到結果的映射中加入了一層sigmoid函數(非線性)映射,即先把特征線性求和,然后使用sigmoid函數來預測。
這主要是由于線性回歸在整個實數域內敏感度一致,而分類范圍,需要在[0,1]之內。而邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,其回歸方程與回歸曲線如下圖所示。邏輯曲線在z=0時,十分敏感,在z>>0或z<<0處,都不敏感,將預測值限定為(0,1)。
LR在線性回歸的實數范圍輸出值上施加sigmoid函數將值收斂到0~1范圍, 其目標函數也因此從差平方和函數變為對數損失函數, 以提供最優化所需導數(sigmoid函數是softmax函數的二元特例, 其導數均為函數值的f*(1-f)形式)。請注意, LR往往是解決二元0/1分類問題的, 只是它和線性回歸耦合太緊, 不自覺也冠了個回歸的名字(馬甲無處不在). 若要求多元分類,就要把sigmoid換成大名鼎鼎的softmax了。
首先邏輯回歸和線性回歸首先都是廣義的線性回歸,其次經典線性模型的優化目標函數是最小二乘,而邏輯回歸則是似然函數,另外線性回歸在整個實數域范圍內進行預測,敏感度一致,而分類范圍,需要在[0,1]。邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,因而對于這類問題來說,邏輯回歸的魯棒性比線性回歸的要好。
邏輯回歸的模型本質上是一個線性回歸模型,邏輯回歸都是以線性回歸為理論支持的。但線性回歸模型無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。
六、 LR和SVM的關系
1、LR和SVM都可以處理分類問題,且一般都用于處理線性二分類問題(在改進的情況下可以處理多分類問題)
2、兩個方法都可以增加不同的正則化項,如l1、l2等等。所以在很多實驗中,兩種算法的結果是很接近的。
區別:
1、LR是參數模型,SVM是非參數模型。
2、從目標函數來看,區別在于邏輯回歸采用的是logistical loss,SVM采用的是hinge loss,這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關系較小的數據點的權重。
3、SVM的處理方法是只考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重。
4、邏輯回歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而SVM的理解和優化相對來說復雜一些,SVM轉化為對偶問題后,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算。
5、logic 能做的 svm能做,但可能在準確率上有問題,svm能做的logic有的做不了。
總結
以上是生活随笔為你收集整理的一、线性回归和逻辑回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新显卡天梯榜公布 前十英伟达占五席 R
- 下一篇: 画面有点上头!男子扛铁板狂砸秦桧雕像:《