線性回歸原理和實踐 《機器學習實戰》筆記

2021-07-28 06:29:33 字數 2642 閱讀 2889

和分類問題一樣,回歸問題也是**目標值的過程。回歸與分類不同點在於,前者**連續型變數,後者**離散型變數。

線性回歸步驟

將標稱型資料編碼為二值資料(one-hot編碼)

訓練演算法得到回歸係數利用r

2 評價模型

使用回歸係數**資料

回歸係數

對於給定的訓練資料集

x 如何訓練得到回歸係數

w 呢?常用的是採用平方誤差最小原則,也就是:mi

n∑i=

1n(y

i−xt

iw)2

用矩陣表示可以表示為(y

−xw)

t(y−

xw) 。對

w 求導,有xt

(y−x

w),關於標量與向量求導內容可參考。令導數為零有: w^

=(xt

x)−1

xty

w 的帽子符號代表估計的最優解。由於包含x−

1項,因此這個方程只有

x 存在逆矩陣時才能使用。當矩陣為奇異矩陣時(特徵數量多於樣本數),可以採用後面介紹的嶺回歸。我的github裡有簡單線性回歸的python**。

區域性加權線性回歸

簡單線性回歸容易出現欠擬合的現象,也就是說模型對一些線性關係不是很好的訓練集誤差較大,因此有人提出區域性加權線性回歸的方法。該演算法給待**點附近的每個點賦予一定權重,距離越近權重越大。加權之後再進行普通線性回歸。因此,這種演算法每**一次都需要選擇**點附近的資料子集。因此

w的形式如下:w^

=(xt

wx)−

1xtw

y 其中w

是乙個矩陣,代表每個點的權重。

一般我們可以採用高斯核(與svm中的核函式意義相近)來表示每個點的權重:wi

,i=e

xp(−

|x(i

)−x|

2σ2)

這樣得到的

w 權重矩陣只有對角元素,且權重大小與資料點距離待測量點距離成反比,最大權重為1,最小權重趨向於0,我們可以通過調整

σ引數來決定附近點的權重大小,

σ 越小則附近點權重越大,也就是說權重隨距離衰減得越快。下圖可以看出不同

σ (圖中為k,我習慣使用

σ 表示高斯核的引數)對資料點權重的影響。

σ 越小,越容易過擬合,因此需要調參確定k的取值。

區域性加權回歸的優缺點

縮減方法

前面說到,如果xt

x 是奇異矩陣,也就是說資料特徵比樣本數多的話,就無法進行求逆操作。為了解決這個問題,必須縮減資料,因此統計學家引入了嶺回歸的概念。

嶺回歸

嶺回歸實際上就是在xt

x 上加了個λi

,這樣就能把非滿秩矩陣轉化為滿秩矩陣進而求逆,由於矩陣λi

只有對角線元素不為0,因此和山嶺類似,故稱之為嶺回歸。因此嶺回歸的回歸係數方程為:w^

=(xt

x+λi

)−1x

ty嶺回歸可以用於處理特徵數量多於樣本數的回歸問題,還能引入估計偏差(引入罰項),進而有更好的泛化能力。

需要注意的是,由於嶺回歸引入了

λ 單位矩陣,因此需要對特徵進行標準化處理,使得每個特徵具有相同的重要性。一般做法為所有特徵減去均值並除以特徵方差。

lasso

嶺回歸相當於給回歸係數

w 增加了乙個平方懲罰項:mi

n(∑i

=1n(

yi−x

tiw)

2+λ∑

j=1m

w2j)

根據拉格朗日乘子法可知,嶺回歸相當於給普通線性回歸增加了乙個約束,可以等價於: w^

=arg

smin

(∑i=

1n(y

i−xt

iw)2

) su

bjec

tto.

∑j=1

mw2j

≤λ從這種約束表達形式來看,我們也能更好的理解為什麼嶺回歸要對資料進行標準化處理,如果不進行標準化,那麼有可能個別特徵的回歸係數就會很大,導致別的特徵回歸係數很小。而lasso方法就是將約束條件改為∑j

=1m|

wj|≤

λ 雖然形式只是平方項變為絕對值,但是卻大大增加了計算的複雜度,lasso約束在

λ 很小時,會讓一些係數更趨於0(嶺回歸還需要平方),因此能夠讓人更好的理解資料。但是由於複雜度原因,我們一般可以採用一種效果接近,但是計算簡單的演算法–前向逐步回歸。

前向逐步回歸

前向逐步回歸是一種迭代貪心演算法,每一步都盡可能減小誤差。具體演算法步驟如下所示

採用前向迭代回歸可以幫助對模型的理解,可以找出重要的特徵。

縮減方法(嶺回歸或前向迭代回歸)能夠增強模型泛化能力,同時也帶來了一定得偏差。在偏差(bias)與方差(variance)的平衡中,可以通過交叉驗證等方法選擇最優模型。

機器學習實戰之線性回歸

之前我們學習的機器學習演算法都是屬於分類演算法,也就是 值是離散值。當 值為連續值時,就需要使用回歸演算法。本文將介紹線性回歸的原理和 實現。如圖所示,這時一組二維的資料,我們先想想如何通過一條直線較好的擬合這些散點了?直白的說 盡量讓擬合的直線穿過這些散點 這些點離擬合直線很近 目標函式 要使這些...

機器學習實戰之線性回歸

線性回歸原理與推導 如圖所示,這時一組二維的資料,我們先想想如何通過一條直線較好的擬合這些散點了?直白的說 盡量讓擬合的直線穿過這些散點 這些點離擬合直線很近 目標函式 要使這些點離擬合直線很近,我們需要用數學公式來表示。首先,我們要求的直線公式為 y xtw。我們這裡要求的就是這個w向量 類似於l...

線性回歸 機器學習實戰筆記

前言 剛開始看到線性回歸,總覺得這是不是和羅輯回歸又啥關係。對比一下吧。線性回歸用於數值 羅輯回歸用於分類。對於羅輯回歸 來說,用於分類的神經網路的最後一層也是乙個羅輯回歸。線性回歸 線性回歸比較簡單,找到一條最佳直線來擬合資料。擬合的目標可以是均方誤差最小。求最優的線性回歸直線的解法就是使用最小二...