python 多元线性回归_用Python实现多元线性回归的梯度下降

知乎不能正确显示markdown的数学公式,想看数学公式可移步:用梯度下降法处理多元线性回归_weixin_36198467的博客-CSDN博客

多元线性回归

公式:$h_θ$ = $θ_0$ + $θ_1x$ + $θ_2x_2$ +……+$θ_nx_n$

我们假设$x_0$ = 1,则我们的特征向量$X$为: $$ left[ begin{matrix} x_0 & x_1 & …… & x_n end{matrix} right] $$ 我们的参数θ为: $$ left[ begin{matrix} θ_0 & θ_1 & …… & θ_n end{matrix} right] $$ $h_θ(x) = θ^T*X$

平方差代价函数:$J(θ_0,θ_1,……,θ_n)$ = $frac1{2m}sum_{i=1}^{m}{(h_θ(x^{(i)}) - y^{(i)})}^2$

我们把$θ_0,θ_1,……,θ_n$看作是一个向量$θ$:$J(θ)$ = $frac1{2m}sum_{i=1}^{m}{(h_θ(x^{(i)}) - y^{(i)})}^2$

我们要不断的更新每个$θ_j$参数: $θ_j := θ_j - αfrac∂{∂θ_j }J(θ_0,θ_1,……,θ_n))$,把$j$从$0$更新到$n$。

停止条件为$J(θ_0,θ_1,……,θ_n)$ = $frac1{2m}sum_{i=1}^{m}{(h_θ(x^{(i)}) - y^{(i)})}^2$收敛。

python代码实现

首先,我们生成一些数据:

import 

如下:

639681ef96920743234f7cff7e2931ac.png
def 

如下图所示,我们可以看到当迭代次数大概在2700次左右的时候,代价函数达到最小值,之后代价函数反而开始上升。

b758c9216245e1b1ce52cee0df86cd8d.png

所以我们要指定迭代停止条件,就是代价函数不再减小的时候,取此时的$θ$值为最终参数。

c6709e1f86b6764825fa0816ac426bae.png

此时的$θ$为: $$ left[ begin{matrix} 1.5937727145838314 & 0.4110413265543656 & 2.166920188201938 & 0.650512565672142 & 3.133321333193598 end{matrix} right] $$ 即: $y = 1.6 + 0.41x_1 +2.17x_2 + 0.65x_3 + 3.13x_4$ 和我们生成数据的公式比较接近(有随机项)

y 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值