大话机器学习之线性回归!

我是小玉,一个刚入门的数据分析师!

线性回归是机器学习里的一个非常重要的模型,记着小玉上次面试的时候,面试官一上来就直接手推线性回归的公式,我的心里os:MMP这么🐯的嘛,一上来就要手推公式,但是表面还得笑嘻嘻!不多说了,来看看具体内容吧。

基础了解:

想要明白什么是线性回归,就先来看看回归是什么意思,提到回归,不可少的会和分类联系起来,今天我就用最简单的语言数清楚什么是分类什么是回归。

  • 分类:将目标分成不同的种类,其对应的目标种类都是离散值(例如:尼克号的分类种类为生还还是死亡,就是一个典型的二分类问题)
  • 回归:回归最简单的理解就是预测出某一个结果,其对应的目标种类都是连续值(例如:根据房间的楼层,面积,方位等因素来预测出该地段的房价问题)
    清晰明了,就是这么简单。
    今天的主要目的是讲讲线性回归问题。常见的线性回归分为单变量线性回归和多变量线性回归。
单变量线性回归:

单变量线性回归就是对于模型而言输入一个特征,使得预测的拟合曲线呈线性分布。

假设函数:

首先先来了解一下我们线性回归算法的目的:确定一条最优的拟合曲线。说的通俗易懂点,就是确定一个能够使预测结果最优的函数方程。
所以针对给定的数据集x和y,预测函数会根据输入特征x计算输出值h(x)。其中输入和输出的函数关系如下:

可以看到我们最终的目的是确定这样的一个预测函数,使得预测函数h计算出来的值与真实值y的整体误差最小。为了达到这个目的,我们需要找到合适θ0,θ1的值,而这两个值称之为单变量线性回归模型的模型参数。

损失函数:

为了达到上面的目的,我们需要对整体的一个误差进行评估,求得在整体误差最小的情况下的模型参数的值,我们在评估样本整体误差的时候,一般采用平方和计算整体的误差,所以我们的损失函数方程可以写成:

其中的h(x)就表示预测的值,y就表示真实的值,损失函数的大小直接反映了模型的好坏程度。所以问题的关键还是要找到合适的两个模型参数,使得模型所对应的损失函数最小。

梯度下降算法:

首先在一个三维空间中,以θ0作为x轴,以θ1作为y轴,以损失函数作为z轴,那我们的目的就是在找到z轴最小值的同时确定其所对应的x轴上的θ0值和y轴上的θ1值。
梯度算法的原理是,先随机选择一组θ0,θ1,同时选择一个参数α作为移动的步幅。然后,让x轴上的分别向特定的方向移动一小步,这个步幅的大小由参数α决定。经过多次迭代之后,x轴和y轴上的值决定的点就慢慢的靠近z轴上的最小处。
上面这个图是从正上方视角去看刚才的那个三维空间。
我们随机选择的点在x0处,经过多次迭代之后,慢慢的靠近圆心处,也就是z轴上最小值附近。
这里面有一个核心问题需要注意,在x0处为什么会走向图中的x1处,为什么不是另一个方向呢?换个说法就是在x0处如何确定移动的方向?
梯度就是在一个点处沿着该方向(梯度的方向)变化最快,所以沿着梯度方向岂不是可以使得损失函数增加的最少。
所以梯度下降的思路就是:让θj不停的迭代,并且计算损失函数在J(θ)在θj上的斜率,再乘上学习率α,就可以让θj往J(θ)的方向迈进一小步。
根据梯度下降公式:

对于单变量的线性回归,确定其模型参数的更新过程:

其中,α是学习率(也就是每一步的步长),m是训练样本的个数,针对上面这个公式,我们可以在每一步去更新θ0,θ1的值,这样我们最终确定的θ0,θ1就是当前样本集的最优模型参数。

多变量线性回归:

上面所说的线性回归是只有一个输入特征,但是在实际中并不全是单输入特征的场景,相比之下,多变量输入特征的案例会更多些,针对于多变量的输入,我们可以采用多变量的线性回归。

假设函数:

对于多变量线性回归,其假设函数为:

给θ0乘上x0 以后可以简写为:

根据向量乘法运算原则,预测函数也可以写成如下的形式:

向量形式的表示既可以简单的表明模型参数与预测结果的关系,也方便在numpy这个库里进行计算,可以大大提高计算效率。

损失函数:

该损失函数同单变量的损失函数。
此时多变量线性回归的损失函数的矩阵形式可以写成:

梯度下降法参数更新公式:
所以在使用线性回归算法的时候,步骤为:

  • 计算学习率α。学习率过大会导致,梯度下降每一步的步长过大,损失函数无法收敛,学习率过小会导致迭代次数过多,算法效率低。
  • 确定参数的起始点位置。一般情况下选择以参数的极值点附近作为起始点,也需要根据具体情况来做出调整。
  • 计算下一组参数的值。利用梯度下降方法所推导出来的模型参数更新公式来计算。
  • 确定损失函数是否收敛。比较最新的损失函数是否较上一个损失函数有减小。
模型优化:

针对于线性回归算法来说,常见的模型问题一般为:过拟合和欠拟合。
针对于过拟合问题,常见的方法有:利用正则化增加惩罚项,减少特征数量的输入个数,增大样本数据。
针对于前拟合问题常见的方法有:增加特征个数,减少样本数据。
在线性回归中,过拟合现象一般是采用正则化来优化损失函数:

前半部分是我们在线性回归模型中的损失函数,也就是预测值和实际值的误差。后半部分是加入的正则项,其中λ既可以维持对训练样本的拟合,又可以避免对训练样本的过拟合。
关于正则化的问题,大家可以自己试着推导一下,利用上述的损失函数进行梯度下降中更新公式的推导。
而在线性回归模型中,欠拟合常用的方案是增加数据维数,增加输入数据的特征数量,使得这些特征呢更好的表示最终预测结果。

算法优缺点:
  • 优点:思想简单,容易实现,容易理解,且算法有很好的解释性,有利于最终的决策分析。
  • 缺点:对于非线性数据或者数据维数多,数据复杂的数据集来说,该算法建模复杂,且表达性不好。
适用场景:

特征简单,数据量不大的数据集。
例如房价估计,温度预测等等。
关于线性回归算法的公式推到就给大家讲到这里,如果对你有用就给小玉点个赞👍吧!

下期预告:逻辑回归算法。

点赞点赞嘿嘿嘿!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值