好文档 - 专业文书写作范文服务资料分享网站

线 性 回 归 方 程 推 导

天下 分享 时间: 加入收藏 我要投稿 点赞

线性回归之最小二乘法推导及python实现

【超实战追-女孩干货】【企鹅:1О⒈б.x.952⒍】 线性回归、加权线性回归及岭回归的原理和公式推导 - 线性回归 - 加权线性回归

机器学习相关的博文相信已经很多了,作为机器学习的一枚菜鸟,写这篇博文不在于标新立异,而在于分享学习,同时也是对自己研究生生涯的总结和归纳,好好地把研究生的尾巴收好。想着比起出去毕业旅行,在实验室总结一下自己的所学,所想,所感应该更有意义吧。(其实也想出去玩,但是老板要求再出一篇文章,那只好和毕业旅行拜拜了,所以趁机写个系列吧,反正后面的时间应该就是文章+博客的双重循环了,其实也是挺美的哈)

学习机器学习的小心得:脑袋中一定要有矩阵、向量的概念,这一点非常重要,因为我们现在处理的数据是多维的数据,所以可能无法非常直观的来表述我们的数据,所以大脑中一定要有这样的概念。然后就是Coding再Coding,这一点自己也没做好啦,惭愧。

线性回归

回归的目的就是对给定的数据预测出正确的目标值,分类的目的是对给定的数据预测出正确的类标,要注意区分这两个概念,其实我在刚接触机器学习的时候经常把这两个概念弄混。那么,对于线性回归,就是实现对给定数据目标值的预测过程。

X=[x#x2192;1,x#x2192;2,#x2026;,x#x2192;m]T\role=\style=\

relative;\

=

[vec{x}_1,

1,x? vec{x}_2,

2,…,x? dots,

m]TX=[x→1,x→2,…,x→m]TX vec{x}_m]^{T},其中role=\

x#x2192;i={xi1,xi2,xi3,#x2026;,xin}T\style=\

relative;\

=

i={xi1,xi2,xi3,…,xin}Tx→i={xi1,xi2,xi3,…,xin}Tvec{x}_i

{x_{i1}, x_{i2}, x_{i3}, dots, x_{in}}^{T}。对应的,这些训练数据的目标值是y#x2192;={y1,y2,y3,#x2026;,ym}\role=\style=\

relative;\

={y1,y2,y3,…,ym}y→={y1,y2,y3,…,ym}vec{y} = {y_1, y_2, y_3, dots, y_m}。一般的,我们通过所给定的训练数据及对应的目标值来求解线性回归

#x03B8;#x2192;={#x03B8;1,#x03B8;2,#x03B8;3,#x2026;,#x03B8;n}T\role=\

style=\

relative;\θ?

=

={θ1,θ2,θ3,…,θn}Tθ→={θ1,θ2,θ3,…,θn}Tvec{theta}

{{theta}_1, {theta}_2, {theta}_3, dots, {theta}_n}^{T}。具体的,我们通过定义损失函数role=\

Jx#x2192;i(#x03B8;#x2192;)\

relative;\

style=\

i(θ? )Jx→i(θ→)J_{vec{x}_i}(vec{theta})来实现对线性回归参数的求解,损失函数定义如下:

(1)Jx#x2192;i(#x03B8;#x2192;)=12(x#x2192;iT#x03B8;#x2212;yi)2\

role=\

style=\

relative;\

i(θ? )=12(x? Tiθ?yi)2(1)(1)Jx→i(θ→)=12(x→iTθ?yi)2

begin{equation}

J_{vec{x}_i}(vec{theta}) = frac{1}{2}(vec{x}^T_itheta - y_i)^2 end{equation}

记住,在机器学习里面,向量的默认是列向量形式,所以上述的T\role=\表示转置,因为我们写的时候写成了横向量的形式。同样在做向量乘积运算时,也应该对左边的向量加上转置,这样向量乘积才会得到一个值。

那么要最小化这个损失函数,我们可以采用随机梯度下降(Stochastic Gradient Descent)或者批梯度下降(Batch Gradient Descent),那么对参数向量#x03B8;#x2192;\role=\style=\relative;\θ? θ→vec{theta}中的每一维参数求偏导,再根据学习率来进行参数地更新,具体如下:

(2)#x2202;Jx#x2192;i(#x03B8;#x2192;)#x2202;#x03B8;j=2#x00D7;12#x00D7;(x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij=(x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij\role=\style=\relative;\

i(θ?

)?θj=2×12×(x?

Tiθ?yi)×xij=(x?

Tiθ?yi)×xij(2)(2)?Jx→i(θ→)?θj=2×12×(x→iTθ?yi)×xij=(x→iTθ?yi)×xij

begin{equation}

begin{split}

frac{partial J_{vec{x}_i}(vec{theta})}{partial {theta}_j}

&=2times frac{1}{2}times(vec{x}^T_itheta - y_i) times {x_{ij}}

&=(vec{x}^T_itheta - y_i) times {x_{ij}} end{split}

end{equation}

那么,对于参数#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((x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij)\role=\style=\relative;\θj=θj?η1m∑mi=1((x?

Tiθ?yi)×xij)

=

θj=θj?η1m∑i=1m((x→iTθ?yi)×xij)~~~~~~~~~~theta_j

{theta}_j - etafrac{1}{m}sum_{i = 1}^{m}((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;((x#x2192;iT#x03B8;#x2212;yi)#x00D7;xij)\role=\style=\relative;\θj=θj?η((x?

Tiθ?yi)×xij)

θj=θj?η((x→iTθ?yi)×xij)~~~~~~~~~~~~theta_j = {theta}_j - eta((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;)T(X#x03B8;#x2192;#x2212;y#x2192;)=12(#x03B8;#x2192;TXTX#x03B8;#x2192;#x2212;#x03B8;#x2192;TXTy#x2192;#x2212;y#x2192;TX#x03B8;#x2192;+y#x2192;Ty#x2192;)=12tr(#x03B8;#x2192;TXTX#x03B8;#x2192;#x2212;#x03B8;#x2192;TXTy#x2192;#x2212;y#x2192;TX#x03B8;#x2192;+y#x2192;Ty#x2192;)=12(tr(#x03B8;#x2192;TXTX#x03B8;#x2192;)#x2212;2tr(y#x2192;TX#x03B8;#x2192;)+y#x2192;Ty#x2192;)\style=\

center;

position:

role=\

relative;\θ? )=12(Xθ? ?y? )T(Xθ? ?y? )=12(θ? TXTXθ? ?θ?

线 性 回 归 方 程 推 导

线性回归之最小二乘法推导及python实现【超实战追-女孩干货】【企鹅:1О⒈б.x.952⒍】线性回归、加权线性回归及岭回归的原理和公式推导-线性回归-加权线性回归机器学习相关的博文相信已经很多了,作为机器学习的一枚菜鸟,写这篇博文不在于标新立异,而在于分享学习,同时也是对自己研究生生涯的总结和归纳,好好地把研究生的尾巴收
推荐度:
点击下载文档文档为doc格式
0o5e89f3sc0daes3y3831emx02sb8q00vpl
领取福利

微信扫码领取福利

微信扫码分享