多元线性回归(Multiple Linear Regression)吴恩达老师课程笔记

概念

​ 在线性回归的原始版本中,只有一个特征x,也就是房屋的大小,我们依据x来预测y,也就是房屋的价格,该模型是
f w , b ( x ) = w x + b f_{w,b}(x)=wx+b fw,b(x)=wx+b
​ 但是现在我们在预测房屋价格的时候,并不仅仅考虑房屋的大小,还要考虑卧室的数量,楼层的数量和房屋的使用年限,那会怎么样呢?
在这里插入图片描述

对此,我们要引出一些新的符号,我们将使用变量X_1,X_2,X_3,X_4来表示这四个特征,在这里我们用 X_{j} 来表示第 j 个特征(比如X_{1}就代表第一),用n来表示特征的总数,用X^{i}, 上标 i 来表示第i个训练示例,或者我们称它为包含第 i 个训练示例的所有特征的向量(比如X^{2}就代表第二),或者有时我们称它为包含第 i 个训练示例的所有特征的向量。这里或许可以用上行下列来记忆。综合起来上面的内容,我们用X_{j}^{i}来表示第 i 个训练样本中的第 j 个特征的数值,比如X__{1}^{2} 就表示第二个训练样本的房屋大小的值1416。

由于多了几个特征,之前的模型也要做进一步的修改

f w , b ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + w 4 x 4 + b f_{w,b}(x)=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+w_{4}x_{4}+b fw,b(x)=w1x1+w2x2+w3x3+w4x4+b
​ b我们可以理解为房子的底价,w_{1}可以理解为房子每增加一平方英尺,房价会上涨多少,其余的也类似。那假如有n个特征,模型将会是下面这样
f w , b ( x ) = w 1 x 1 + w 2 x 2 + … … + w n x n + b f_{w,b}(x)=w_{1}x_{1}+w_{2}x_{2}+……+w_{n}x_{n}+b fw,b(x)=w1x1+w2x2+……+wnxn+b
​ 下面我们要引入一些符号,以简单等效的重写下面这个表达式。

​ 我们将w定义为一个数字列表,其中参数为w_{1},w_{2},w_{3},……w_{n}, b就是一个单纯的数字,不是一个向量,这里的向量w和数字b一起组成了模型的参数。那上面的式子就可以表示为
f w , b ( x ) = w ⋅ x + b = w 1 x 1 + w 2 x 2 + w 3 x 3 … … w n x n + b f_{w,b}(x)=w\cdot x+b=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}……w_{n}x_{n}+b fw,b(x)=wx+b=w1x1+w2x2+w3x3……wnxn+b
​ 这种具有多个输入特征的线性回归模型就是多元线性回归

梯度下降

​ 假如我们现在有一个问题,有16个特征和16个参数
w = ( w 1 , w 2 , w 3 , … … w 16 ) d = ( d 1 , d 2 , d 3 , … … d 16 ) w=(w_{1},w_{2},w_{3},……w_{16})\\ d=(d_{1},d_{2},d_{3},……d_{16}) w=(w1,w2,w3,……w16)d=(d1,d2,d3,……d16)
d里面存储导数的值,在这个问题中,我们将先忽略参数b,现在,我们要计算这16个参数中每一个的更新

w = np.array([0.5,1.3,……,3.4])
d = np.array([0.3,0.2,……,0.4])

w j = w j − 0.1 d j            f o r j = 1 , 2 , … … 16      0.1 是学习率 w_{j}=w_{j}-0.1d_{j} \ \ \ \ \ \ \ \ \ \ for j=1,2,……16\ \ \ \ 0.1是学习率 wj=wj0.1dj          forj=1,2,……16    0.1是学习率

如果不用向量处理的话,我们需要做一下操作

for i in range(0,16):
	w[j] = w[j]-0.1*d[j]

如果使用向量化处理的话,就可以利用计算机的并行处理,代码实现如下

w = w - 0.1 * d

也许只有16个特征时,处理的速度差异并不明显,但是如果是非常大的训练集,将会在学习时间上产生很大的差距

对于梯度下降算法,如果不使用向量化处理,则重复以下操作:
w j = w j − α δ δ w j J ( w 1 , … … w n , b ) b = b − α δ δ b J ( w 1 , w 2 , … … , w n , b ) w_{j}=w_{j}-\alpha \frac{\delta}{\delta w_{j}}J(w_{1},……w_{n},b)\\ b=b-\alpha \frac{\delta}{\delta b}J(w_{1},w_{2},……,w_{n},b) wj=wjαδwjδJ(w1,……wn,b)b=bαδbδJ(w1,w2,……,wn,b)
如果使用向量化操作,则重复以下操作:
w j = w j − α δ δ w j J ( w , b ) b = b − α δ δ b J ( w , b ) w_{j}=w_{j}-\alpha \frac{\delta}{\delta w_{j}}J(w,b)\\ b=b-\alpha \frac{\delta}{\delta b}J(w,b) wj=wjαδwjδJ(w,b)b=bαδbδJ(w,b)

得到梯度下降公式:
w 1 = w 1 − α 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y i ) x 1 i w 2 = w 2 − α 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y i ) x 2 i … … w n = w b − α 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y i ) x n i b = b − α 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y i ) w_{1}=w_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{1}^{i}\\ w_{2}=w_{2}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{2}^{i}\\ ……\\ w_{n}=w_{b}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{n}^{i}\\ \\ b=b-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})\\ w1=w1αm1i=1m(fw,b(x(i))yi)x1iw2=w2αm1i=1m(fw,b(x(i))yi)x2i……wn=wbαm1i=1m(fw,b(x(i))yi)xnib=bαm1i=1m(fw,b(x(i))yi)

  • 31
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值