机器学习(四):多元线性回归

一、概念

下面这种模型只有一个特征(feature):x,模型参数是w,b

f_{w,b}(x)=w*x+b

下面这种模型有多个特征,即有多特征的多元线性回归模型,模型参数是w_{1}w_{2}w_{3}w_{4},b

f_{w,b}(x)=w_{1}*x_{1}+w_{2}*x_{2}+w_{3}*x_{3}+w_{4}*x_{4}+b

以下图为例,房价的影响因素有面积、房间数、楼层数、房龄,分别用x_{1}x_{2}x_{3}x_{4}替代

二、多元线性回归的向量表达

x_{j}:第j个特征

n:特征个数

\vec{x}^{(i)}:训练集第i组的特征,用向量表示,如第3组特征值为[1534,3,2,30,315]

x_{j}^{(i)}:训练集第i组中,第j个特征,如x_{2}^{(3)}=3

f_{w,b}(x)=w_{1}*x_{1}+w_{2}*x_{2}+w_{3}*x_{3}+w_{4}*x_{4}+b,此模型可简化为:

f_{\vec{w},b}(\vec{x})=\vec{w}\cdot \vec{x}+b,这种表达方式更加简洁

其中,\vec{w}\cdot \vec{x}是向量点积

三、代码中的向量计算

方式一:直接用for循环把w_{j}x_{j}相乘

方式二:使用numpy库,用向量方式计算

当特征很多时,优先使用numpy库,因为:1、代码简洁;2、运行速度更快

numpy的运行速度更快的原因是,numpy支持并行硬件,如下图所示,w_{j}x_{j}相乘是并行的。而for循环的方式,w_{j}x_{j}相乘是串行的。

四、多元线性回归的梯度下降

多元线性回归的梯度下降,每次更新:w_{1}w_{2},...,w_{n},b(n为特征数量)

w_{j} = w_{j} - \alpha \frac{\partial }{\partial w_{j} }J(\vec{w},b)

b = b- \alpha \frac{\partial }{\partial b}J(\vec{w},b)

推导为:

w_{j}=w_{j}- \alpha *\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_{j}^{(i)}

b=b- \alpha *\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x }^{(i)})-y^{(i)})

五、Normal Equation

Normal Equation是一步到位求解线性回归代价函数的算法。优点是不需要进行迭代,缺点是仅适用于线性回归模型,求解速度慢。

原理是线性回归的代价函数中,当导数为0时,代价函数值最小,因此只需要求解导数为0时的参数,就可以得出最优模型。

具体推导:

https://zhuanlan.zhihu.com/p/60719445

学习来源:B站吴恩达:5.1-5.4节

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值