relative;\i(θ? )?θj=12×2×wik×(x? Tiθ? ?yi)×xij=wik(x? Tiθ? ?yi)×xij?Jx→i(θ→)?θj=12×2×wik×(x→iTθ→?yi)×xij=wik(x→iTθ→?yi)×xij
begin{split}
frac{partial J_{vec{x}_i}(vec{theta}) }{partial {theta}_j} &=frac{1}{2} times 2 times w_{ik} times (vec{x}^T_ivec{theta} - y_i) times x_{ij}
&= w_{ik} (vec{x}^T_ivec{theta} - y_i) times x_{ij} end{split}
那么,对于参数#x03B8;j\relative;\θjθj{theta}_j的更新,批梯度下降算法如下所示:
Repeat until convergence{
#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#x03B8;j=#x03B8;j#x2212;#x03B7;1m#x2211;i=1m(wik(x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij)\role=\style=\relative;\θj=θj?η1m∑mi=1(wik(x?
Tiθ?yi)×xij)
=
θj=θj?η1m∑i=1m(wik(x→iTθ?yi)×xij)~~~~~~~~~~theta_j
{theta}_j - etafrac{1}{m}sum_{i = 1}^{m}(w_{ik}(vec{x}^T_itheta - y_i) times {x_{ij}}) (for every #x03B8;j\role=\style=\θjθjtheta_j)
其中,#x03B7;\role=\style=\
relative;\ηηeta表示学习率。而对于随机梯度下降,算法如下所示:
for i = 1 to m{
#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;\
role=\
style=\
#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;#x03B8;j=#x03B8;j#x2212;#x03B7;(wik(x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij)\role=\style=\relative;\θj=θj?η(wik(x?
Tiθ?yi)×xij)
θj=θj?η(wik(x→iTθ?yi)×xij)~~~~~~~~~~~~theta_j = {theta}_j - eta(w_{ik}(vec{x}^T_itheta - y_i) times {x_{ij}})
#xA0;#xA0;#xA0;#xA0;#xA0;#xA0;\style=\
可以看到,距离待拟合点越远的数据点,对回归参数的作用将越小。所以,对于加权线性回归需要对每一个待拟合的数据计算回归参数,所以相较于加权线性回归其拟合的效果会有所提升。但也容易出现过拟合的现象。
那么对于矩阵形式的加权线性回归的公式求解,具体如下: J(#x03B8;#x2192;)=12(X#x03B8;#x2192;#x2212;y#x2192;)TW(X#x03B8;#x2192;#x2212;y#x2192;)=12(#x03B8;#x2192;TXTWX#x03B8;#x2192;#x2212;#x03B8;#x2192;TXTy#x2192;#x2212;y#x2192;TWX#x03B8;#x2192;+y#x2192;Ty#x2192;)=12tr(#x03B8;#x2192;TXTWX#x03B8;#x2192;#x2212;#x03B8;#x2192;TXTWy#x2192;#x2212;y#x2192;TWX#x03B8;#x2192;+y
role=\
#x2192;Ty#x2192;)=12(tr(#x03B8;#x2192;TXTWX#x03B8;#x2192;)#x2212;2tr(y#x2192;TWX#x03B8;#x2192;)+y#x2192;Ty#x2192;))\role=\
style=\
center;
position:
relative;\θ? )=12(Xθ? ?y? )TW(Xθ? ?y? )=12(θ? TXTWXθ? ?θ? TXTy? ?y? TWXθ? +y? Ty? )=12tr(θ? TXTWXθ? ?θ? TXTWy? ?y? TWXθ? +y?
Ty?
)=12(tr(θ?
TXTWXθ?
)?2tr(y?
TWXθ?
)+y?
Ty? ))J(θ→)=12(Xθ→?y→)TW(Xθ→?y→)=12(θ→TXTWXθ→?θ→TXTy→?y→TWXθ→+y→Ty→)=12tr(θ→TXTWXθ→?θ→TXTWy→?y→TWXθ→+y→Ty→)=12(tr(θ→TXTWXθ→)?2tr(y→TWXθ→)+y→Ty→))
begin{split} J(vec{theta})
&=
frac{1}{2}(Xvec{theta}
-
vec{y})^TW(Xvec{theta} - vec{y})
&=frac{1}{2}(vec{theta}^TX^TWXvec{theta}
-
vec{theta}^TX^Tvec{y} - vec{y}^TWXvec{theta} + vec{y}^Tvec{y})
&=frac{1}{2}tr(vec{theta}^TX^TWXvec{theta}
-
vec{theta}^TX^TWvec{y} - vec{y}^TWXvec{theta} + vec{y}^Tvec{y})
&=frac{1}{2}(tr(vec{theta}^TX^TWXvec{theta}) 2tr(vec{y}^TWXvec{theta}) + vec{y}^Tvec{y}))
end{split}
其中W#x2208;Rm#x00D7;m\relative;\in R^{m times m}是距离权重对角矩阵,有:
-
W=[wk10#x2026;00wk2#x2026;0.0#x2026;.00#x2026;wkm]\role=\
style=\
center;
position:
relative;\00…wkm]
begin{gather*}
begin{bmatrix} w_{k1} & 0 & dots & 0 0 & w_{k2} & dots & 0 . & 0 & dots & . 0 & 0 & dots & w_{km}
end{bmatrix} end{gather*}
那么,下一步就是对矩阵求#x03B8;#x2192;\style=\θ? θ→vec{theta}的偏导,公式如下:
#x2207;#x03B8;#x2192;J(#x03B8;#x2192;)=12#x2207;#x03B8;#x2192;(tr(#x03B8;#x2192;TXTWX#x03B8;#x2192;)#x2212;2tr(y#x2192;TWX#x03B8;#x2192;)+y#x2192;Ty#x2192;))=12(XTWX#x03B8;#x2192;+XTWX#x03B8;#x2192;#x2212;2(XTWy#x2192;))=XTWX#x03B8;#x2192;#x2212;XTWy#x2192;=0\role=\style=\center; position: relative;\θ? J(θ? )=12?θ? (tr(θ? TXTWXθ? )?2tr(y? TWXθ? )+y? Ty? ))=12(XTWXθ? +XTWXθ? ?2(XTWy? ))=XTWXθ? ?XTWy? =0?θ→J(θ→)=12?θ→(tr(θ→TXTWXθ→)?2tr(y→TWXθ→)+y→Ty→))=12(XTWXθ→+XTWXθ→?2(XTWy→))=XTWXθ→?XTWy→=0
begin{split}
abla_{vec{theta}}J(vec{theta})
&=
frac{1}{2}abla_{vec{theta}}(tr(vec{theta}^TX^TWXvec{theta}) 2tr(vec{y}^TWXvec{theta}) + vec{y}^Tvec{y}))
&=frac{1}{2}(X^TWXvec{theta} -2( X^TWvec{y}))
&=X^TWXvec{theta} - X^TWvec{y} =0 end{split}
+
-
X^TWXvec{theta}
那么最终求解得#x03B8;#x2192;=(XTWX)#x2212;1XTWy#x2192;\role=\style=\relative;\θ? =(XTWX)?1XTWy? θ→=(XTWX)?1XTWy→vec{theta}=(X^TWX)^{-1} X^TWvec{y}。这就是使用矩阵求解的形式来计算加权线性回归的回归系数。记住一点,加权线性回归要对每一个待回归的数据求解回归系数。所以,这里我们首先要计算待回归点和训练数据样本点的距离权重对角矩阵W\role=\style=\。
岭回归主要用于处理特征数多于样本数的情况,现在也用于在估计中加入偏差,从而得到更好的估计。对于线性回归来讲,通过引入惩罚项#x2211;j=1n#x03B8;j2\
role=\
style=\
relative;\θ2j∑j=1nθj2sum_{j = 1}^{n}theta^2_j来减少不重要的参数,这在统计学里面成为缩减(shrinkage)。
具体的,此时的损失函数定义为:
J(#x03B8;#x2192;)=12((x#x2192;iT#x03B8;#x2192;#x2212;yi)2+#x03BB;#x2211;j=1n#x03B8;j2)\
role=\
style=\center; position: relative;\θ? )=12((x?
线 性 回 归 方 程 推 导
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)