線性回歸——機器學習的第一個算法



介紹

定義:線性回歸在假設特證滿足線性關系,根據給定的訓練數據訓練一個模型,并用此模型進行預測。

(小萌A:)什么意思?

簡單來說,我們把每個數據樣本比作一個點,對于這堆點,我們試著用一條直線去擬合它們,盡可能的使得這些點均勻的分布在直線的兩邊,像這樣:

x軸表示數據樣本,y軸表示通過數據樣本得到的結果

我們擬合出一條最優(yōu)的直線后,當有新的數據出現(xiàn)時,我們可以通過這條直線來預測對應的y值,就是這個意思。

(小萌B:)怎么擬合呢?

首先,我們有一個函數模型:

X為我們的數據樣本,W就是我們需要設法找到的系數

對于我們的訓練數據:

Y為X對應的結果

便于計算機的計算,我們將我們的樣本寫成舉證的形式:

上標為樣本索引,下標為屬性所對應的值

——————————————

(小萌B突然發(fā)問:)為什么每行都會多出來一個1?

請看到我們的上上上一張圖,W0 就是我們的函數模型的截距,它的系數始終為1。

——————————————

然后我們通過已知的Y值和X值來找到這個神秘的W值,我們的函數模型每次都完美的擬合所有的數據是不可能的,這時候我們引入損失函數cost(拿最小二乘法來說):

y表示真值,h表示預測值,為了防止樣本數量給cost函數帶來影響并方便對其求導,我們對它取平均,cost函數表示預測值與真實值之間的差異,最后平方取得正值

(小萌D:)然后呢?

當我們的矩陣滿秩時求解,直接對其求導:

當矩陣不滿秩時,采用梯度下降法:? ?

梯度下降法

梯度下降

原理:將函數比作一座山,我們站在某個山坡上,往四周看,從哪個方向向下走一小步,能夠下降的最快;

1、首先對θ賦值,這個值可以是隨機的,也可以讓θ是一個全零的向量。

2、改變θ的值,使得J(θ)按梯度下降的方向進行減少。


假設我們得到X,Y,然后初始化一個W

對損失函數求導可以得到:

這個步驟

不斷的迭代“這個步驟”,最后當我們導數幾乎為零是,我們就求得了這個W值。

但是我們需要知道的是,梯度下降算法是一種求局部最優(yōu)解的方法


Tips:

1)為了更好更迅速的進行梯度下降,我們需要對數據進行歸一化或者標準化,使得數據分布在某一個范圍內(比如將值從1-100000的數據歸一化到0-1的范圍內)

2)對于線性回歸模型而言,符合高斯分布的數據可以獲得更好的準確率,所以適當的時候我們需要對數據進行數據處理,讓其盡可能的滿足高斯分布

這些會在后續(xù)的章節(jié)里面逐一介紹


文章內容若有不足,歡迎批評指正

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容