目标
- 定义线性回归模型和非线性回归模型。
- 思考拟合优度标准。
- 推导出线性回归模型的系数。
- 推导出非线性回归模型的系数
资源
回归与插值不同,因为它允许我们近似超定系统,该系统方程数多于未知数。当精确解过于昂贵或由于数据中的误差(例如测量误差或随机噪声)而变得不必要时,这很有用。
线性回归找到一条最接近通过给定数据点的线性函数 - 回归(函数)线最适合数据。我们必须定义用于衡量拟合优度的指标。如果所有数据点都位于函数上,则这是一个完美的拟合,否则函数对数据的表示存在误差。我们可以衡量数据点与函数的偏差。如以下示例所示 (来源),误差之和或绝对误差之和都不是一个好的指标。数据包括四个点(2, 4)、(3, 6)、(2, 6)和(3, 8)。我们使用一条直线来拟合数据。两个可能的解在iPython 笔记本(示例 1)中显示。
让我们看看将一条直线拟合到数据的示例,即找到一个具有一个变量的线性回归模型来表示数据。该函数是
,要最小化的(成本)误差平方和函数为
![{\displaystyle S(a_{0},a_{1})=\sum _{i=1}^{n}{(y_{i}-f(x_{i}))}^{2}=\sum _{i=1}^{n}{[y_{i}-a_{0}-a_{1}x_{i}]}^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bbb6d3f2a0f66838a2e2ab14b77037598cee348e)
我们可以通过将
函数的梯度设置为零来最小化该函数。因为该函数有两个参数(变量),所以有两个梯度方程


偏导数表示函数值相对于一个自变量的变化率,而所有其他变量保持不变。当偏导数变为零时,这意味着变化已经停止。这意味着我们已经达到最小值或最大值,这可以通过检查二阶导数的符号来确定。
让我们考虑

以及
,
我们可以推导出
.
因此,我们可以计算
和
如下

.
给定以下定义

我们得到

.
线性回归线模拟了自变量(预测变量)和因变量之间的关系。建立模型后,可以用于预测。在几乎所有现实世界的回归模型中,都会涉及多个预测变量(自变量)来模拟影响系统响应(因变量)的多个因素。这样的模型被称为多元线性模型。
另一种找到最小化误差平方和的回归模型参数的方法是求解相应的正规方程。给定矩阵方程
,正规方程是最小化左右两边平方差之和的方程
.
给定一个假设的回归模型和一个数据集,我们可以构建左侧以表达模型使用数据预测的值。A 应该是一个
矩阵,其中每一行代表
个数据点(样本)中的一个,每一行中的每一列代表
个参数中的每一个的乘数。
是一个
列向量,用于表示未知参数。右侧
应该是一个
列向量,存储对应的数据点的
值。
回忆一下,用直线(模型)
拟合以下数据点。
我们可以构建矩阵方程
的左侧,即
,
这应该得到一个列向量,其中包含我们模型预测的值
.
右侧应该是数据点对应值的向量

最小化左侧和右侧之间平方差之和等价于求解以下正规方程
.
我们例子的正规方程是

如果
可逆,则解向量应该是唯一的,并为我们提供参数
和
的值,这些值将最小化模型和数据之间的差异,即模型最适合数据。
当我们确定一个形式为
的回归线来拟合四个数据点时,我们有四个方程可以写成
或

为了解决模型,我们实际上是在最小化
.
上一节中介绍的方法归结为求解以下形式的两个未知数的线性方程组。

不难想象,当有
个独立变量和
个数据点时,我们可以推导出一个类似的具有
个未知数的线性方程组。然后可以使用数值方法(例如高斯消元法)来求解参数。我们也可以使用正规方程和矩阵运算来求解参数。
梯度下降法 是一种寻找函数局部最小值的方法。该方法基于梯度的概念,梯度是函数在一维中的导数(斜率或切线)在多维空间中的推广。对于具有
个变量的函数,特定点处的梯度是一个向量,其分量是函数的
个偏导数。下图显示了函数的梯度。
函数 f(x,y) = −(cos2x + cos2y)2 的梯度,作为底部平面上投影的向量场表示。
由于梯度指向函数增长率最大的方向,其大小是该方向上图的斜率,因此我们可以从一个随机点开始,并沿着当前点的负梯度方向进行步进,以找到局部最小值——梯度下降或最速下降。
回想一下,多维空间中的梯度是成本函数相对于各个维度的参数的偏导数。





梯度下降法可以用来解决非线性回归模型。
非线性回归 通过一个非线性函数对观测数据中的关系进行建模,该函数是模型参数的非线性组合,并且依赖于一个或多个自变量。一些非线性回归问题可以转化为线性域。例如,求解
等价于求解
,其中
。
这是一个 例子,展示了使用梯度下降法求解非线性回归模型。