almost 3 years ago

在之前線性迴歸的計算中,最小化成本函數
$$
|| \vec y - \tilde x \vec \theta||^2_{min}
$$
的方法稱為Best Linear Unbiase Estimator。是假設變數間是隨機分佈,並沒有相互關聯(non-correlated)。

延續上單元,我們發現直接使用unbiased estimator無法有效判斷的真假。如果變數有高度相關時,例如:
$$
住房坪數(y) = \theta_0 + 年收入*\theta_1 + 所得稅 * \theta_2
$$

此時會隨著資料的微幅變動有很大差異。為了能修正

變數 會大幅變動

而加入成本函數的條件限制
$$
|| \vec y - \tilde x \vec \theta||^2_{min} \rightarrow s.t \rightarrow || \theta||^2 \leq C^2
$$

上式代表的幾何意義為,限制解侷限在以為半徑的山脊上。而不會掉到unbias的山谷裡。


此時Cost function 可寫成
$$
\| \vec y - \tilde x \vec \theta \|^2 + \alpha \left( \| \theta\|^2 - C^2 \right)
$$
由於僅為一常數,上式也可以改寫成
$$
J = \frac{1}{2} \sum_i \left| y_i - \sum_{j'=0}^k x_{ij'}\theta_j \right|^2 + \frac{1}{2} \alpha \sum_{j'}^k | \theta_j|^2 \tag{1}
$$

沿著微分為零,可整理得
$$
\vec \theta = \left( \tilde{x}^T\tilde{x} + \alpha I\right)^{-1} \tilde{x}^T \vec y \tag{2}
$$
在Ridge regression 也可以直接求得解析解形式如(2)。


實例:

上單元中透過一組資料估算出
$$
上網時間(y) = 30.579 + 0.9725*社群好友 - 1.865*工作時間 + 0.923*博士學歷
$$

利用sklearn下linear_model.Ridge()

ridge = linear_model.Ridge()
ridge.fit(x,yreal)

alpha = [1,10,100,1000]
for e in alpha:
    ridge.alpha = e
    ridge.fit(x,yreal)
    print "alpha:{}, ridge coeff:{}".format(ridge.alpha,ridge.coef_)    


增加時,發現有很明顯的變化。我們可以合理懷疑變數博士學歷不是影響結果的重要特徵。

接下一講會利用Lasso Regression更進一步說明特徵選擇(features selection)。


相關資料:

← 多變數線性迴歸(二)解析解 多變數線性迴歸(四)Lasso Regression →
 
comments powered by Disqus