在機器學習中,我們一般要處理的問題就是**問題。對於離散值的**我們叫分類(classification),而對於連續值的**我們就叫做回歸(regression)。而在所有機器學習模型中,最基礎也是最重要的模型就是線性模型,今天我們就說下機器學習中的線性模型。其基本形式如下: f(
x)=w
1∗x1
+w2∗
x2+.
..+w
d∗xd
+b(1-1)
將其用向量表示形式如下: f(
x)=w
t∗x+
b(1-2)
其中w=
(w1,
w2,.
..,w
d)t , x=
(x1,
x2,.
..,x
d)t 。在這裡
w 和
b即是線性模型的引數,
x 即是我們要**的資料。而獲取線性模型的最終目的即是訓練該模型的引數w和
b 。有時候為了表示的方便,我們會將 w和
b 聯合表示成w^
=(w1
,w2,
...,
wd,d
)t, 而x^=
(x1,
x2,.
..,x
d,1)
t ,這樣的話式(1-2)即可以表示成如下所示的簡潔形式: f(
x)=w
^t∗x
^(1-3) w
^ 引數。
前面說過了,回歸的任務就是**連續值。在給定的資料集d=
, 其中xi
=(xi
1,xi
2,..
.,xi
d)t,
yi∈r
中,xi
是樣本的屬性,yi
是樣本的標記(因為是回歸任務所以這裡是連續值),線性模型就是希望針對這組資料可以學到乙個模型以能夠準確的**樣本的標記。為了敘述的方便,我們考慮二維的情況,即該資料只用乙個屬性。其資料如圖2-1所示:
圖2-1 資料集
對於該資料集,我們需要訓練出乙個線性模型來**給定xi
的標籤值yi
。確定w 和
b的關鍵在於如何衡量f(
x)與y
之間的差別。我們一般通過均方誤差去衡量模型的好壞: (w
∗,b∗
)=argmin(w
,b)∑
i=1m
(f(x
i)−y
i)2(2-1)
x 表示樣本矩陣 x=
(x^1
,x^2
,...
x^m)
t其最小二乘法的解析表示式是 w^
∗=(x
tx)−
1xty
(2-2)
最小二乘法解析式求解方式網上有很多資料,這裡就不說了,當然通過矩陣求導可以很容易的求出該表示式。
因此我們最後的模型即是 f(
xi)=
wtxi
(2-3)
圖2-1的**模型如圖2-2所示:
圖2-1 擬合模型
但是要注意的是 xt
x 必須滿秩才能有逆矩陣,而其滿秩就要求樣本數量必須要大於屬性個數才可以。求解式(2-1)除了用最小二乘法求出其解析式以外,還有可以通過迭代法進行求解,如梯度下降法(gradient descent),不過這裡就不介紹梯度下降法了,以後專門寫乙個部落格介紹梯度下降法及其優化演算法。
這裡介紹的線性模型還可以拓展到「廣義線性模型(generalized linear model)」,即 y=
g−1(
wtx+
b)(2-4)
這裡的g(
) 是個連續且光滑的函式,如ln
()對數函式。
線性回歸模型 線性回歸模型
回歸的思想和分類有所不一樣,分類輸出的結果為離散的值,回歸輸出的是乙個連續型的值。線性回歸的思想就是試圖找到乙個多元的線性函式 當輸入一組特徵 也就是變數x 的時候,模型輸出乙個 值y h x 我們要求這個 值盡可能的準確,那麼怎麼樣才能做到盡可能準確呢?其中 表示實際值,表示 值 其中 表示實際值...
線性回歸(標準回歸)
今天我們來討論機器學習的另乙個領域 首先我們來討論利用線性回歸來 數值型資料。利用線性回歸進行 的過程就是求解回歸係數的過程,求出回歸係數後進行係數與特徵值乘積求和即可,這裡我們使用最小二乘法進行求解 ex0.txt 提取碼 dbe2 def loaddataset filename numfeat...
回歸學習 線性回歸
匯入資料 from sklearn.datasets import load boston boston load boston print boston.descr 資料分割 from sklearn.cross validation import train test split import ...