通俗理解線性回歸
回歸分析
什么是回歸分析呢?這是一個來自統計學的概念,回歸分析是指一種預測性的建模技術,主要是研究自變數和因變數的關系,通常使用線/曲線來擬合資料點,然后研究如何使曲線到資料點的距離差異最小,
例如,存在以下資料

然后我們擬合一條曲線f(x):

回歸分析的目標就是要擬合一條曲線,讓圖中紅色線段加起來的和最小,
線性回歸(簡介)
線性回歸是回歸分析的一種,
- 假設目標值(因變數)與特征值(自變數)之間線性相關(即滿足一個多元一次方程,如:f(x)=w1x1+…+wnxn+b.),
- 然后構建損失函式,
- 最后通過令損失函式最小來確定引數,(最關鍵的一步)
線性回歸(詳解)
還是按照簡介的思路來說,以簡單的一元線性回歸(一元代表只有一個未知自變數)做介紹,
有n組資料,自變數x(x1,x2,…,xn),因變數y(y1,y2,…,yn),然后我們假設它們之間的關系是:f(x)=ax+b,那么線性回歸的目標就是如何讓f(x)和y之間的差異最小,換句話說就是a,b取什么值的時候f(x)和y最接近,
這里我們得先解決另一個問題,就是如何衡量f(x)和y之間的差異,在回歸問題中,均方誤差是回歸任務中最常用的性能度量(自行百度一下均方誤差),記J(a,b)為f(x)和y之間的差異,即

i代表n組資料中的第i組,
這里稱J(a,b)為損失函式,明顯可以看出它是個二次函式,即凸函式(這里的凸函式對應中文教材的凹函式),所以有最小值,當J(a,b)取最小值的時候,f(x)和y的差異最小,然后我們可以通過J(a,b)取最小值來確定a和b的值,
到這里可以說線性回歸就這些了,只不過我們還需要解決其中最關鍵的問題:確定a和b的值,
下面介紹三種方法來確定a和b的值:
- 最小二乘法
既然損失函式J(a,b)是凸函式,那么分別關于a和b對J(a,b)求偏導,并令其為零解出a和b,這里直接給出結果:


解得:


-
梯度下降法
首先你得先了解一下梯度的概念:梯度的本意是一個向量(矢量),表示某一函式(該函式一般是二元及以上的)在該點處的方向導數沿著該方向取得最大值,即函式在該點處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模),
當函式是一元函式時,梯度就是導數,這里我們用一個最簡單的例子來講解梯度下降法,然后推廣理解更為復雜的函式,
還是用上面的例子,有n組資料,自變數x(x1,x2,…,xn),因變數y(y1,y2,…,yn),但這次我們假設它們之間的關系是:f(x)=ax,記J(a)為f(x)和y之間的差異,即

在梯度下降法中,需要我們先給引數a賦一個預設值,然后再一點一點的修改a,直到J(a)取最小值時,確定a的值,下面直接給出梯度下降法的公式(其中α為正數):

下面解釋一下公式的意義,J(a)和a的關系如下圖,

假設給a取的預設值是a1的話,那么a對J(a)的導數為負數,則
也為負數,所以

意味著a向右移一點,然后重復這個動作,直到J(a)到達最小值,
同理,假設給a取的預設值是a2的話,那么a對J(a)的導數為正數,則

意味著a向左移一點,然后重復這個動作,直到J(a)到達最小值,
所以我們可以看到,不管a的預設值取多少,J(a)經過梯度下降法的多次重復后,最后總能到達最小值,
這里再舉個生活中的栗子,梯度下降法中隨機給a賦一個預設值就好比你隨機出現在一個山坡上,然后這時候你想以最快的方式走到山谷的最低點,那么你就得判斷你的下一步該往那邊走,走完一步之后同樣再次判斷下一步的方向,以此類推就能走到山谷的最低點了,而公式中的α我們稱它為學習率,在栗子中可以理解為你每一步跨出去的步伐有多大,α越大,步伐就越大,(實際中α的取值不能太大也不能太小,太大會造成損失函式J接近最小值時,下一步就越過去了,好比在你接近山谷的最低點時,你步伐太大一步跨過去了,下一步往回走的時候又是如此跨過去,永遠到達不了最低點;α太小又會造成移動速度太慢,因為我們當然希望在能確保走到最低點的前提下越快越好,)
到這里,梯度下降法的思想你基本就理解了,只不過在栗子中我們是用最簡單的情況來說明,而事實上梯度下降法可以推廣到多元線性函式上,這里直接給出公式,理解上(需要你對多元函式的相關知識有了解)和上面的栗子殊途同歸,
假設有n組資料,其中目標值(因變數)與特征值(自變數)之間的關系為:

其中i表示第i組資料,損失函式為:

梯度下降法:

-
正規方程
(這里需要用到矩陣的知識)
正規方程一般用在多元線性回歸中,原因等你看完也就能理解為什么,所以這里不再用一元線性回歸舉栗子了,
同樣,假設有n組資料,其中目標值(因變數)與特征值(自變數)之間的關系為:

其中i表示第i組資料,這里先直接給出正規方程的公式:
推導程序如下:
記矩陣
向量


則

損失函式為:
對損失函式求導并令其為0,有
解得
到此,就求出了所有系數θ,不過正規方程需要注意的是
在實際中可能會出現是奇異矩陣,往往是因為特征值之間不獨立,這時候需要對特征值進行篩選,剔除那些存在線性關系的特征值(好比在預測房價中,特征值1代表以英尺為尺寸計算房子,特征值2代表以平方米為尺寸計算房子,這時特征值1和特征值2只需要留1個即可),
好了,以上就是線性回歸的講解(如果對你理解線性回歸確實有幫助的話,幫忙點個贊,同時也歡迎指出問題), 下面再補充一下個人對上面三種確定系數θ方法的評估,
- 梯度下降法是通用的,包括更為復雜的邏輯回歸演算法中也可以使用,但是對于較小的資料量來說它的速度并沒有優勢
- 正規方程的速度往往更快,但是當數量級達到一定的時候,還是梯度下降法更快,因為正規方程中需要對矩陣求逆,而求逆的時間復雜的是n的3次方
- 最小二乘法一般比較少用,雖然它的思想比較簡單,在計算程序中需要對損失函式求導并令其為0,從而解出系數θ,但是對于計算機來說很難實作,所以一般不使用最小二乘法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/200435.html
標籤:其他
