和分類問題一樣,回歸問題也是**目標值的過程。回歸與分類不同點在於,前者**連續型變數,後者**離散型變數。
線性回歸步驟
將標稱型資料編碼為二值資料(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...
線性回歸 機器學習實戰筆記
前言 剛開始看到線性回歸,總覺得這是不是和羅輯回歸又啥關係。對比一下吧。線性回歸用於數值 羅輯回歸用於分類。對於羅輯回歸 來說,用於分類的神經網路的最後一層也是乙個羅輯回歸。線性回歸 線性回歸比較簡單,找到一條最佳直線來擬合資料。擬合的目標可以是均方誤差最小。求最優的線性回歸直線的解法就是使用最小二...