線性迴歸

本文主要從一個例子開始說說線性迴歸模型以及線性迴歸模型的損失函數,求解方法和機率解釋。不涉及統計學裏的迴歸分析等諸多細節。html

 

例子

假設咱們中介手上有一些房屋銷售的數據(北京的房價過高了):算法

面積(平方米) 價格(萬)
80 320
90 365
100 380
120 400
150 500

有我的有個130平方米的房子要賣,中介該建議房東賣多少錢呢?函數

咱們能夠把上面的銷售數據畫在一張圖上,而後找一條曲線去擬合這些點,擬合出來的結果以下:spa

而後咱們在橫座標上找到130,在縱座標上找到對應的點,比450稍微少一點點,因而中介就能夠建議房東賣450萬了。htm

上面的例子只考慮了房屋的面積,沒有考慮房屋的朝向(朝南的房子通常要貴一些),地理位置(二環裏的房子要比六環外貴),房屋的建造年份(新房老是比舊房貴)等等,若是咱們考慮了不少不少跟房子相關的因素,那上面的那條線(已經不是簡單的二維平面裏的直線了,是一個多維空間的超平面)該怎麼畫呢?這就是一個典型的線性迴歸問題。blog

模型

若是咱們用 $\mathbf{x}=(x_1,x_2,\ldots,x_n)^T$去描述一個房屋的特徵,其中$x_1$表明房屋面積,$x_2$表明房屋朝向,$x_3$表明房屋地理位置等等,咱們擬合的超平面爲:get

$\large h(\mathbf{x}) = h_{\mathbf{w}}(\mathbf{x}) = w_0 + w_1 x_1 + w_2 x_2 + \ldots + w_n x_n $數學

上式是一個關於 $\mathbf{w}$ 的線性函數,這就是線性迴歸的模型,線性是針對未知參數 $\mathbf{w}$ 來講的。一旦咱們知道了 $\mathbf{w}$,給定一個房屋信息$mathbf{x},咱們就能夠根據上面的公式去預測房屋的價格。io

爲了記號上的方便,通常咱們引入 $x_0=1$,則咱們的線性迴歸模型能夠寫成:table

$\large h(\mathbf{x}) = h_{\mathbf{w}}(\mathbf{x}) = w_0 x_0+ w_1 x_1 + w_2 x_2 + \ldots + w_n x_n  = \mathbf{w}^T \mathbf{x}$

假設咱們已經收集到 $m$ 條房屋的銷售記錄:

$\large (\mathbf{x}^1, y^1), (\mathbf{x}^2, y^2), \ldots, (\mathbf{x}^m, y^m)$

其中$\mathbf{w}$是房屋的特徵,$y$表示房屋的價格

 

策略

咱們的目的是求出最合適一個最$\mathbf{w}$,讓真實的房屋價格 $y$ 和房屋的預測價格 $h_{\mathbf{w}}(\mathbf{x})$ 越靠近越好(備註:到後面講到模型的泛化能力和過擬合的時候會說到這句話其實不那麼對),爲此咱們定義一個損失函數,它表現了某個房屋真實的價格和預測價格到底差多遠:

$\large L(\mathbf{w}, (\mathbf{x}^i, y^i)) = (h_{\mathbf{w}}(\mathbf{x}^i) - y^i)^2 $

對全部銷售數據而言,咱們平均差值爲:

$\large L(\mathbf{w}) = \frac {1}{m} \sum_{i=1}^m (h_{\mathbf{w}}(\mathbf{x}^i) - y^i)^2 $

因此咱們的目的就變成求一個$\mathbf{w}$,讓上面的式子最小:

$\large min_{\mathbf{w}} \frac {1}{m} \sum_{i=1}^m (h_{\mathbf{w}}(\mathbf{x}^i) - y^i)^2  = min_{\mathbf{w}} \frac {1}{2} \sum_{i=1}^m (h_{\mathbf{w}}(\mathbf{x}^i) - y^i)^2  $

 

算法

算法沒什麼特別的,主要採用梯度降低法或者隨機梯度降低法,不熟悉的能夠參考數學基礎之微積分裏相關的部分.

梯度降低解:

$\large w_j := w_j + \alpha \sum_{i=1}^m  (y^i - h_{\mathbf{w}}(\mathbf{x}^i)) x_j^i $

隨機梯度降低:

$\large w_j := w_j + \alpha (y^i - h_{\mathbf{w}}(\mathbf{x}^i)) x_j^i $

 

機率解釋

假設咱們房價的預測結果和真實結果有偏差 $\epsilon^i$,則:

$\large y^i = \mathbf{w}^T \mathbf{x}^i + \epsilon^i $

咱們假設這裏的 $\epsilon $ 是IID(獨立同分布)的,均值爲0,方差爲$ \delta^2 $的正態分佈, 即:

$\large p(\epsilon^i) = \frac {1}{\sqrt{2 \pi} \delta } exp(- \frac {(\epsilon^i)^2}{2 \delta^2})$

因此 $y$ 就是 均值爲 $h_{\mathbf{w}}(\mathbf{x})$,方差爲$ \delta^2 $的正態分佈

$\large p(y^i | \mathbf{x}^i; \mathbf{w}) = \frac {1}{\sqrt{2 \pi} \delta } exp(- \frac {( y^i - h_{\mathbf{w}}(\mathbf{x}^i))^2}{2 \delta^2})$

而後咱們列出 $\mathbf{w}$ 的似然函數:

$ \large l(\mathbf{w}) = \Pi_{i=1}^m p(y^i | \mathbf{x}^i; \mathbf{w}) = \Pi_{i=1}^m  \frac {1}{\sqrt{2 \pi} \delta } exp(- \frac {( y^i - h_{\mathbf{w}}(\mathbf{x}^i))^2}{2 \delta^2}) $

而後對上式取對數:

$\large \ln l(\mathbf{w}) = \sum_{i=1}^m \ln \frac {1}{\sqrt{2 \pi} \delta } exp(- \frac {( y^i - h_{\mathbf{w}}(\mathbf{x}^i))^2}{2 \delta^2}) = m \ln \frac {1} {\sqrt{2 \pi} \delta} - \frac {1} {\delta^2} \cdot \frac {1}{2} \sum_{i=1}^m ( y^i - h_{\mathbf{w}}(\mathbf{x}^i))^2 $

對上式求極大就等於對下面的式子就極小:

$\large \frac {1}{2} \sum_{i=1}^m (h_{\mathbf{w}}(\mathbf{x}^i) - y^i)^2  $

這跟咱們定義損失函數,而後最小化損失函數獲得的是同樣的結論。

 

參考資料

[1]: Machine Learning https://class.coursera.org/ml-2012-002

[2]: Pattern recognization and machine learning http://research.microsoft.com/%E2%88%BCcmbishop/PRML

 轉載 http://www.cnblogs.com/dudi00/p/4093236.html

相關文章
相關標籤/搜索