線性迴歸—求解介紹及迴歸擴展

做爲機器學習中的線性迴歸,它是一個典型的迴歸問題,因爲容易理解、可解釋性強,被普遍應用於機器學習的過程當中。爲了深刻了解線性迴歸相關知識,飛馬網於4月12日晚邀請到前後在1號店、飛牛網等電商企業從事算法工做的張飛老師,在線上直播中,爲咱們分享線性迴歸知識。算法

線性迴歸_頁面_01.jpg 

如下本次是分享實錄:機器學習

一.迴歸的概念函數

迴歸在咱們的平常工做中常常會用到,好比預測銷量、房價等,咱們首先來了解一下什麼是迴歸?學習

線性迴歸_頁面_02.jpg 

二.變量之間的關係資源

兩個變量之間的關係是怎樣的呢?主要包括兩種關係:肯定性關係和非肯定性關係。肯定性關係能夠經過函數表達出來,例如圓點周長與半徑的關係、速度和時間與路程的關係、X與Y的函數關係等。非肯定性關係表示兩變量之間一種宏觀上的關係,不能精確用函數關係來表達,例如青少年身高與年齡的關係、身高與體重的關係、藥物濃度與反應率的關係。文檔

線性迴歸_頁面_03.jpg 

三.線性迴歸的概念直播

咱們下面來介紹線性迴歸的概念。當兩個變量存在準確、嚴格的直線關係時,能夠用Y=a+bX(X爲自變量,Y是因變量),表示二者的函數關係。電商

線性迴歸_頁面_04.jpg 

那爲何叫「迴歸」呢?這裏簡單瞭解一下。高爾頓在研究人的身高時,發現父代與子代的身高不是處於兩個極端,而是反映了一個規律,這兩種身高父親的兒子的身高,有向他們父輩的平均身高迴歸的趨勢,即當父親高於平均身高時,他們的兒子身高比他更高的機率要小於比他更矮的機率;父親矮於平均身高時,他們的兒子身高比他更矮的機率要小於比他更高的機率,這就是所謂的迴歸效應。變量

線性迴歸_頁面_05.jpg 

四.線性迴歸求解(迴歸參數的估計)原理

1.最小二乘法:

要求出a和b這兩個參數,就要用到最小二乘法的計算方法,咱們看下圖的迴歸方程。最小二乘法即保證各實測點到迴歸直線的縱向距離的平方和最小,並使計算出的迴歸方程最能表明實測數據所反映出的直線趨勢。

線性迴歸_頁面_06.jpg 

咱們簡單瞭解一下最小二乘法計算過程的例子:

線性迴歸_頁面_07.jpg 

函數模型寫成矩陣式以下圖。t1至tn爲輸入值,b0、b1作了一個矩陣乘法,y1到yn是實際的值。

線性迴歸_頁面_08.jpg 

根據下面這張圖中的戰艦數據,咱們求b1。

線性迴歸_頁面_09.jpg 

具體計算過程以下:

線性迴歸_頁面_10.jpg 

上面所講的最小二乘法均是在二元狀況下,咱們再看看多元狀況下的最小二乘法,也能夠用矩陣式表達,以下圖所示:

線性迴歸_頁面_11.jpg 

用矩陣轉置的運算方法來求解,會涉及矩陣逆的計算,就會有一個問題,若是數據量較大,計算就會很是慢,這是就要判斷擬合的好壞,那咱們用什麼指標來衡量呢?第一個方法是咱們計算出SE、SR、ST。

線性迴歸_頁面_13.jpg 

線性迴歸_頁面_14.jpg 

咱們也能夠經過另外的指標—相關係數來衡量擬合的好壞:

線性迴歸_頁面_15.jpg 

在多元線性迴歸時,數據量比較大的狀況下,最小二乘法求解耗費的資源較大,那咱們有沒有其它的方法呢?咱們來看下面這張圖:

線性迴歸_頁面_16.jpg 

2.梯度降低:

由此咱們引出全新的一個方法來求解線性迴歸參數—梯度降低,這是咱們經常使用到的一個方法,它計算量較小,且能夠獲得一個相對而言的局部最優解。一塊兒來看一下梯度降低的方法和算法過程圖:

線性迴歸_頁面_17.jpg 

梯度降低本質上是求出一個函數的最小值,使得它的損失函數最小,所以針對損失函數用梯度降低,就可以使梯度降低和線性迴歸整合,看下圖:

線性迴歸_頁面_18.jpg 

①梯度降低Feature Scaling

爲了加快梯度降低的執行速度,咱們就要將特徵標準化,經常使用的標準化方法以下:

線性迴歸_頁面_19.jpg 

下面是一個練習題:

線性迴歸_頁面_20.jpg 

②梯度降低 多元

在實際問題中,咱們的特徵不可能只有兩個,也許會有不少個,這邊舉了一個房價的例子:

線性迴歸_頁面_21.jpg 

它的損失函數和以前同樣,只是變成了在多元狀況下,梯度求解也是由以前的一元改成多元狀況,把對應的值求出來,咱們來看圖:

線性迴歸_頁面_22.jpg 

下面咱們來看一下例子:

線性迴歸_頁面_23.jpg 

在實際工做中,這個方法常被用於進行機器算法求解,或者是轉置矩陣的形式。

③隨機梯度降低

梯度降低有一個擴展性問題,當樣本點很大的時候,計算起來就會很慢,因此接下來又提出了隨機梯度降低算法。

隨機梯度降低算法計算起來很快,可是收斂的過程比較曲折,總體效果上,大多數時候它只能接近局部最優解,而沒法真正達到局部最優解,適合用於較大訓練集的狀況。

它的公式如圖所示:

線性迴歸_頁面_24.jpg 

3.比較最小二乘法與梯度降低:

介紹完最小二乘法和梯度降低以後,咱們把二者進行一個比較:

線性迴歸_頁面_25.jpg 

五.迴歸擴展

最後一部分是對於線性迴歸的擴展,主要介紹嶺迴歸與Lasso迴歸。

1.嶺迴歸:

其實就是在本來的方程里加入了I2範數,爲何要加I2範數呢?I2範數就是一個懲罰項,使得模型的泛化能力更強,防止咱們把參數求解出來以後,在預測過程當中所產生模型訓練過擬合現象,在預測結果上達到預約效果。

線性迴歸_頁面_26.jpg 

2.Lasso迴歸:

它是加入了I1範數,I1的好處是存文檔時,把某些待估係數輸送到鄰之間。從下圖中能夠很直觀地看出嶺迴歸與Lasso迴歸的區別。

線性迴歸_頁面_27.jpg 

以上五大部分就是張老師要講解的主要內容,下面是最後的問答環節,咱們一塊兒來看看都有些什麼問題。

1.請問函數的推導過程是否是都要記清楚,仍是能運用模型就能夠了?

張老師:咱們在學習算法時,對算法的基本原理要清楚,像線性迴歸的求參過程、最小二乘法、梯度降低法,對這些知識的掌握都要比較熟練,至於函數的推導過程不須要徹底掌握,但對它的原理必定要清楚,不然就達不到預期效果,不知道如何去調優。

2.爲何最小二乘法是最優方法?

張老師:最小二乘法只是求解線性迴歸的一種方法,這種方法是求座標軸實際值與目標值之間的差的平方,它的精度比較弱,適用的模型只有線性迴歸,在特徵很是多時,求解速度也會很是慢,致使模型沒法求解成功,通常狀況下,咱們都是運用梯度降低法來求解參數值,它能逼近局部最優解,因此咱們更推薦梯度降低法。

3.歸一化怎麼應用?

張老師:歸一化有不少方法,用當前值減去平均值再除以最大值減最小值,這個是比較簡單的方法,但這個方法有必定的侷限性,好比樣本里面出現異常值,可能會對歸一化的順序產生必定影響,還有其它的一些方法。至於怎麼去應用,咱們要根據具體的應用場景去選擇相應的方法。

 

以上就是本次線上直播的所有內容,相信經過本次學習,在實際工做當中,你們能更熟練地去運用線性迴歸算法。想了解更多更詳細內容的小夥伴們,能夠關注服務號:FMI飛馬網,點擊菜單欄飛馬直播,便可進行學習。

 

 

服務號.jpg

相關文章
相關標籤/搜索