python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)
引用文章1
https://blog.csdn.net/viewcode/article/details/8794401
引用文章2:一、線性回歸和邏輯回歸
一、什么是機器學習
利用大量的數(shù)據(jù)樣本,使得計算機通過不斷的學習獲得一個模型,用來對新的未知數(shù)據(jù)做預測。
-
有監(jiān)督學習(分類、回歸)
同時將數(shù)據(jù)樣本和標簽輸入給模型,模型學習到數(shù)據(jù)和標簽的映射關系,從而對新數(shù)據(jù)進行預測。
分類問題和回歸問題本質(zhì)上是一樣的,分類問題輸入數(shù)據(jù),輸出分類;回歸問題輸入時間,輸出(預測)數(shù)據(jù) -
無監(jiān)督學習(聚類)
只有數(shù)據(jù),沒有標簽,模型通過總結規(guī)律,從數(shù)據(jù)中挖掘出信息。
-
強化學習
強化學習會在沒有任何標簽的情況下,通過先嘗試做出一些行為得到一個結果,通過這個結果是對還是錯的反饋,調(diào)整之前的行為,就這樣不斷的調(diào)整,算法能夠學習到在什么樣的情況下選擇什么樣的行為可以得到最好的結果。
就好比你有一只還沒有訓練好的小狗,每當它把屋子弄亂后,就減少美味食物的數(shù)量(懲罰),每次表現(xiàn)不錯時,就加倍美味食物的數(shù)量(獎勵),那么小狗最終會學到一個知識,就是把客廳弄亂是不好的行為。
二、線性回歸
利用大量的樣本D=(xi,yi)i=1N\mathit{D}=\left ( x_{i},y_{i} \right )_{i=1}^{N}D=(xi?,yi?)i=1N?,通過有監(jiān)督的學習,學習到由x到y(tǒng)的映射f\mathit{f}f,利用該映射關系對未知的數(shù)據(jù)進行預估,因為y為連續(xù)值,所以是回歸問題。
- 單變量情況:
- 多變量情況:
二維空間的直線,轉化為高維空間的平面
2.1 線性回歸的表達式
機器學習是數(shù)據(jù)驅動的算法,數(shù)據(jù)驅動=數(shù)據(jù)+模型,模型就是輸入到輸出的映射關系。
模型=假設函數(shù)(不同的學習方式)+優(yōu)化
1. 假設函數(shù)
2. 優(yōu)化方法
監(jiān)督學習的優(yōu)化方法=損失函數(shù)+對損失函數(shù)的優(yōu)化
3. 損失函數(shù)
如何衡量已有的參數(shù)θ的好壞?
利用損失函數(shù)來衡量,損失函數(shù)度量預測值和標準答案的偏差,不同的參數(shù)有不同的偏差,所以要通過最小化損失函數(shù),也就是最小化偏差來得到最好的參數(shù)。
解釋:因為有m個樣本,所以要平均,分母的2是為了求導方便
損失函數(shù):凸函數(shù)
4. 損失函數(shù)的優(yōu)化
損失函數(shù)如右圖所示,是一個凸函數(shù),我們的目標是達到最低點,也就是使得損失函數(shù)最小。
多元情況下容易出現(xiàn)局部極值
求極值的數(shù)學思想,對公式求導=0即可得到極值,但是工業(yè)上計算量很大,公式很復雜,所以從計算機的角度來講,求極值是利用梯度下降法。
參數(shù)更新示例:
對每個theta都進行更新:
學習率:
① 學習率太大,會跳過最低點,可能不收斂
② 學習率太小收斂速度過慢
5. 過擬合和欠擬合
過擬合的原因:
① 如果我們有很多的特征或模型很復雜,則假設函數(shù)曲線可以對訓練樣本擬合的非常好,學習能力太強了,但是喪失了一般性。
② 眼見不一定為實,訓練樣本中肯定存在噪聲點,如果全都學習的話肯定會將噪聲也學習進去。
過擬合造成什么結果:
過擬合是給參數(shù)的自由空間太大了,可以通過簡單的方式讓參數(shù)變化太快,并未學習到底層的規(guī)律,模型抖動太大,很不穩(wěn)定,variance變大,對新數(shù)據(jù)沒有泛化能力。
6. 利用正則化解決過擬合問題
正則化的作用:
① 控制參數(shù)變化幅度,對變化大的參數(shù)懲罰
② 限制參數(shù)搜索空間
添加正則化的損失函數(shù):
三、邏輯回歸
為什么使用sigmoid函數(shù):
3.1 邏輯回歸的損失函數(shù)
線性回歸的損失函數(shù)為平方損失函數(shù),如果將其用于邏輯回歸的損失函數(shù),則其數(shù)學特性不好,有很多局部極小值,難以用梯度下降法求最優(yōu)。
邏輯回歸損失函數(shù):對數(shù)損失函數(shù)
解釋:如果一個樣本為正樣本,那么我們希望將其預測為正樣本的概率p越大越好,也就是決策函數(shù)的值越大越好,則logp越大越好,邏輯回歸的決策函數(shù)值就是樣本為正的概率;
如果一個樣本為負樣本,那么我們希望將其預測為負樣本的概率越大越好,也就是(1-p)越大越好,即log(1-p)越大越好。
為什么要用log:
樣本集中有很多樣本,要求其概率連乘,概率為(0,1)間的數(shù),連乘越來越小,利用log變換將其變?yōu)檫B加,不會溢出,不會超出計算精度。
邏輯回歸損失函數(shù):
3.2 邏輯回歸實現(xiàn)多分類
四、LR的特點
可解釋性高,工業(yè)中可控度高。
五、 為什么邏輯回歸比線性回歸好
雖然邏輯回歸能夠用于分類,不過其本質(zhì)還是線性回歸。它僅在線性回歸的基礎上,在特征到結果的映射中加入了一層sigmoid函數(shù)(非線性)映射,即先把特征線性求和,然后使用sigmoid函數(shù)來預測。
這主要是由于線性回歸在整個實數(shù)域內(nèi)敏感度一致,而分類范圍,需要在[0,1]之內(nèi)。而邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,其回歸方程與回歸曲線如下圖所示。邏輯曲線在z=0時,十分敏感,在z>>0或z<<0處,都不敏感,將預測值限定為(0,1)。
LR在線性回歸的實數(shù)范圍輸出值上施加sigmoid函數(shù)將值收斂到0~1范圍, 其目標函數(shù)也因此從差平方和函數(shù)變?yōu)閷?shù)損失函數(shù), 以提供最優(yōu)化所需導數(shù)(sigmoid函數(shù)是softmax函數(shù)的二元特例, 其導數(shù)均為函數(shù)值的f*(1-f)形式)。請注意, LR往往是解決二元0/1分類問題的, 只是它和線性回歸耦合太緊, 不自覺也冠了個回歸的名字(馬甲無處不在). 若要求多元分類,就要把sigmoid換成大名鼎鼎的softmax了。
首先邏輯回歸和線性回歸首先都是廣義的線性回歸,其次經(jīng)典線性模型的優(yōu)化目標函數(shù)是最小二乘,而邏輯回歸則是似然函數(shù),另外線性回歸在整個實數(shù)域范圍內(nèi)進行預測,敏感度一致,而分類范圍,需要在[0,1]。邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,因而對于這類問題來說,邏輯回歸的魯棒性比線性回歸的要好。
邏輯回歸的模型本質(zhì)上是一個線性回歸模型,邏輯回歸都是以線性回歸為理論支持的。但線性回歸模型無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。
六、 LR和SVM的關系
1、LR和SVM都可以處理分類問題,且一般都用于處理線性二分類問題(在改進的情況下可以處理多分類問題)
2、兩個方法都可以增加不同的正則化項,如l1、l2等等。所以在很多實驗中,兩種算法的結果是很接近的。
區(qū)別:
1、LR是參數(shù)模型,SVM是非參數(shù)模型。
2、從目標函數(shù)來看,區(qū)別在于邏輯回歸采用的是logistical loss,SVM采用的是hinge loss,這兩個損失函數(shù)的目的都是增加對分類影響較大的數(shù)據(jù)點的權重,減少與分類關系較小的數(shù)據(jù)點的權重。
3、SVM的處理方法是只考慮support vectors,也就是和分類最相關的少數(shù)點,去學習分類器。而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數(shù)據(jù)點的權重。
4、邏輯回歸相對來說模型更簡單,好理解,特別是大規(guī)模線性分類時比較方便。而SVM的理解和優(yōu)化相對來說復雜一些,SVM轉化為對偶問題后,分類只需要計算與少數(shù)幾個支持向量的距離,這個在進行復雜核函數(shù)計算時優(yōu)勢很明顯,能夠大大簡化模型和計算。
5、logic 能做的 svm能做,但可能在準確率上有問題,svm能做的logic有的做不了。
總結
以上是生活随笔為你收集整理的python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 什么是先验概率?
- 下一篇: python 元组和字典的返回值后面有个