机器学习-线性回归算法


线性回归算法是使用线性方程对数据集进行拟合的算法,是一个非常常见的回归算法。

单变量线性回归算法

1.预测函数

针对数据集x和y,预测函数会根据输入特征x来计算输出值h(x)。其输入输出的函数关系如下:
h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x这个方程表达的是一条直线。我们的任务是构造一个hθ函数,来映射数据集中的输入特征x和输出值y,使得预测函数hθ计算出来的值与真实值的整体误差最小。构造hθ函数的关键,就是找到合适的θ0,θ1的值,θ0,θ1称为模型参数。模型的求解过程,就是找出一组最合适的模型参数θ0,θ1,以便能最好地拟合数据集。
怎样来判断最好地拟合了数据集呢 ?
当拟合成本最小时,即找出了最好的拟合参数。

2.成本函数

单变量线性回归算法的成本函数是: h θ ( x ) = θ 0 + θ 1 x J ( θ ) = J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 h_{\theta}(x)=\theta_{0}+\theta_{1} xJ(\theta)=J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h\left(x^{(i)}\right)-y^{(i)}\right)^{2} hθ(x)=θ0+θ1xJ(θ)=J(θ0,θ1)=2m1i=1m(h(x(i))y(i))2其中h(x)-y是预测值和实际值的差,故成本就是预测值和实际值的差的平方的平均值,之所以除以2是为了计算方便。这个函数是均方差方程。有了成本函数,就可以精确地测量模型对训练样本拟合的好坏程度。
在这里插入图片描述
在这里插入图片描述

3.梯度下降算法

怎样求解模型参数θ0,θ1的值?
我们采用梯度下降法,算法如下:
初始化参数θ0和θ1
while(函数J收敛){ θ j = θ j − α ∂ ∂ θ j J ( θ ) \theta_{j}=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta) θj=θjαθjJ(θ)}
α称为学习率,控制梯度下降的速度。它乘以成本函数对θj的偏导数,以这个结果作为移动的幅度,如果幅度太小,意味着要计算很多次才能到达目的地,如果幅度太大,可能会直接跨过目的地,从而无法收敛。

学习率是固定的,因为后面对代价函数的导数会越来越小。在这里插入图片描述
为什么成本函数中要除以一个2?
在这里插入图片描述

多变量线性回归算法

1.预测函数

上文介绍的线性回归模型里只有一个输入特征,我们推广到更一般的情况,即多个输入特征。 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}+\cdots+w_{n} x_{n}+b fw,b(x)=w1x1+w2x2++wnxn+b
向量形式的预测函数
1)代码简洁
2)Numpy库里的矩阵运算可提高效率**在这里插入图片描述

2.确认梯度下降是否收敛

根据梯度下降参数迭代公式,分别同时算出新的w的值。然后用新的w值得到新的预测函数f(x),再根据新的预测函数,代入成本函数就可以算出新的成本。拿新的成本和旧的成本进行比较,看成本是不是变得越来越小。如果两次成本之间的差距小于误差范围,即说明以及非常靠近最小成本了,就可以近似地认为我们找到了最小成本。如果两次成本之间的差距在误差范围之外,重复以上步骤继续计算下一组参数w,直到找到最优解。
在这里插入图片描述

3.模型优化

1)数据归一化
当线性回归模型有多个输入特征时,需要对数据进行归一化处理,比如,特征x1的范围在[1,4]之间,特征x2的范围在[1,2000]之间,这种情况下,可以让x1除以4来作为新特征x1,同时让x2除以2000来作为新特征x2,该过程称为特征缩放。可以用特征缩放来对训练样本进行归一化处理,处理后的特征值范围在[0,1]之间。
归一化处理的目的是让算法收敛得更快,提升模型拟合过程中的计算效率。进行归一化处理后,当有个新的样本需要计算预测值时,也需要先进行归一化处理,再通过模型来计算预测值,计算出来的预测值要再乘以归一化处理的系数,这样得到的数据才是真实的预测数据。

2)特征多项式
当线性回归模型太简单导致欠拟合时,我们可以增加特征多项式来让线性回归模型更好地拟合数据。比如有两个特征 X1,X2 ,可以增加两特征的乘积 X1X2 作为新特征 X3 。我们还可以增加 X1^作为另外一个新特征 X4 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值