一、如何理解线性回归算法
在日常的生活中,我们经常会遇到一些排队的场景 ,例如:早上在上班早高峰去坐地铁,在地铁入口处地铁协管员会要求人们进行排队,尽管队伍中的人员没有刻意站成一条直线,但从队伍外边来看,它就是一条直线。
有一天,因为你起床晚了,特别着急的赶到地铁站,如果赶不上这班地铁你就要迟到了,所以你很想一下子排到队伍的前边去,但是按照要求,你只能排在队伍的最后边。同样,新来的人要进地铁站,也一定排在队伍的最后边。
这个操作看似很平常,只要你按照刚才说的排好队,就说明你已经成功在你的潜意识中构建了一个模型,根据模型去寻找你自己的站位。这个模型就是线性回归模型,你的站位就是这个模型的解,是一个具体的数值。在这个模型中,所有人的站位都分布在一条直线的周围,后来的人也都会站在这条直线的周围,让它依然是一条直线,这就是线性回归模型背后的逻辑思路。
二、线性回归算法核心原理
线性回归算法的逻辑思路:根据已有的数据去寻找一条直线,让它尽可能的去接近这些数据,再用这条直线去预测新数据可能的结果,这个预测结果就是一个具体的数值。
那我们怎么去找到这条直线呢?
关于直线的方程大家都知道吧?在平面内表示一条直线的方程为:Y=AX+B,A表示斜率,B表示截距,直线图如下图所示:
在这个式子中,我们用一组合适的参数A和B去描述一组对应的事物X和Y之间的关系,然后再用得到的方程来预测未知事物的可能性,这就是线性回归用来做预测的套路。
回到刚才排队的例子中,如果我们把队伍中每个人的顺序和这个人的位置想象成X和Y,我们根据目前排队的人员顺序和位置信息一定能找到一组A和B,用来描述人员排队的这一条直线,让尽可能多的人都站在这条直线上,或者离这条直线的距离最近,这时我们已经找到了表示人员排队的这条直线了。
最后我们再用这个已知的分布,也就是确定了A和B的直线方程Y=AX+B,将新来的人的顺序信息带入该方程中,就可以得到新来的人的位置信息了。
以上就是一个一元线性方程的例子,因为影响结果Y的只有一个因素X。对于在实际问题,影响一个事情的因素可能有多个,我们就需要构建一个多元回归方程了,它不再是一条直线,可能是一个多维平台了。比如,在预测银行贷款的例子中,贷款人的工资和年龄会影响贷款的额度,这个时候我们就要构建一个二元回归方程了,它是一个复杂的平面,公式为如下:
三、如何计算最优解?
线性回归算法的原理讲完了,但是有一个问题,我们如何保证所有的点都在这条直线上,或者说所有点到这条直线的距离之和最短呢?这时我们需要引入损失函数来对每次生成的直线进行评估。
在数学上,我们定义一个距离公式来计算线性回归的预测值与真实值之间的差异,放在我们的例子中就是计算每个排队的人的实际位置与理想直线站位的误差到底有多大。
这个公式在机器学习中就被称作损失函数,损失函数就是用来评价模型的预测值与真实值之间的差异,损失函数越小,模型的性能就越好。而平方残差和是一种常见的损失函数,它是用来计算每一个样本点的结果值和当前函数值之间的平方差的和,差值越小,回归模型就做的越好。平方残差的计算过程如下图所示。
四、线性回归算法应用场景
五、线性回归算法优缺点
优点:线性回归算法很简单,数学原理很清晰,运算效率很高,可解释性好。
缺点:
1、线性回归算法太过简单,预测的精确度相对较低,不相关的特征会对模型的结果有很大的影响;
2、在数据量较小的情况下,容易发生过拟合;
3、不具备求解一个非线性问题的能力,也就是说,如果你的数据不是简单地分布在一条直线周围,那么你用线性回归求解的分布也会误差很大,从而对未知测试数据的评估结果也不准确。