机器学习--线性回归算法详解与pytorch代码实现

本文详细介绍了线性回归算法,包括假设函数、损失函数、梯度下降及其优化方法,如批量梯度下降、随机梯度下降和小批量梯度下降。还讨论了数据归一化、正则化来防止过拟合,并概述了正则化在梯度下降中的应用。最后,文章预告将使用PyTorch实现线性回归模型。
摘要由CSDN通过智能技术生成

房价预测问题:已知m组数据的房价与其对应的面积、所在楼层、地段、交通等特征的数据。假设这m个数据中,第i个房子的房价为 y ( i ) y^{(i)} y(i),楼层、地段、交通等的特征为 ( x 1 , x 1 , . . . , x n ) (x_1,x_1,...,x_n ) (x1,x1,...,xn)。我们需要做的是从过去的这m条数据中,学到一个模型,用于已知这些特征,求新的房子的房价。

1.假设函数(hypothesis)

首先,我们可以根据m条数据的分布特点,假设预测房价的模型函数为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ(x)=θ0+θ1x1+θ2x2++θnxn

2.损失函数

模型输出值与真实值之间的均方或者绝对值之差或者其他形式的差。此处使用最常用的均方误差(MSELoss),即: J ( θ 0 , θ 1 … θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1} \ldots \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1θn)=2m1i=1m(hθ(x(i))y(i))2我们的目的是求出 ( θ 1 , θ 1 , . . . , θ n ) (\theta_1,\theta_1,...,\theta_n ) (θ1,θ1,...,θn),使得该损失 J J J最小,即在m条训练数据中,模型预测的值最接近真实值。

3.梯度下降

梯度下降用于计算损失函数取得最小值时 θ i \theta_i θi的值,梯度下降法更新参数 θ i \theta_i θi的公式为:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 , … , θ n ) \theta_{\mathrm{j}}:=\theta_{\mathrm{j}}-\alpha \frac{\partial}{\partial \theta_{j}} \mathrm{J}\left(\theta_{0}, \theta_{1}, \ldots, \theta_{\mathrm{n}}\right) θj:=θjαθjJ(θ0,θ1,,θn)即初始值-学习率*损失函数对该变量的偏导数,a是学习率(learning rate),它决定了我们沿着能让损失函数下降程度最大的方向向下迈出的步子有多大。
θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) θ 1 : = θ 1 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 1 ( i ) θ 2 : = θ 2 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 2 ( i ) \begin{array}{l}{\theta_{0}:=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值