作者 | Marco Peixeiro
来源 | Medium
编辑 | 代码医生团队
介绍
本文试图成为理解和执行线性回归所需的参考。虽然算法很简单,但只有少数人真正理解了基本原理。
首先,将深入研究线性回归理论,以了解其内在运作。然后,将在Python中实现该算法来模拟业务问题。
理论
将如何研究线性回归
线性回归可能是统计学习的最简单方法。对于更先进的方法来说,这是一个很好的起点,事实上,许多花哨的统计学习技术可以看作是线性回归的扩展。因此理解这个简单的模型将为继续采用更复杂的方法奠定良好的基础。
线性回归非常适合回答以下问题:
2个变量之间是否存在关系?
关系有多强?
哪个变量贡献最大?
如何准确估计每个变量的影响?
能准确预测目标吗?
这种关系是线性的吗?(杜)
有互动效应吗?
估计系数
假设只有一个变量和一个目标。然后线性回归表示为:
具有1个变量和1个目标的线性模型的方程
在上面的等式中,beta是系数。这些系数是需要的,以便用模型进行预测。
那么如何找到这些参数呢?
为了找到参数,需要最小化最小二乘或误差平方和。当然线性模型并不完美,它不能准确预测所有数据,这意味着实际值和预测之间存在差异。错误很容易通过以下方式计算:
从真实值中减去预测
但为什么误差平方?
对误差进行平方,因为预测可以高于或低于真值,分别导致负差异或正差异。如果没有对误差进行平方,则由于负差异而导致的误差总和可能会减少,而不是因为模型非常适合。
此外平方误差会对较大的差异造成不利影响,因此最小化平方误差会“保证”更好的模型。
看一下图表以便更好地理解。
线性拟合数据集
在上图中,红点是真实数据,蓝线是线性模型。灰线表示预测值和真值之间的误差。因此蓝线是最小化灰线平方长度之和的线。
在对本文过于沉重的一些数学运算之后,最终可以使用以下等式估算系数: