线性回归 Linear Regression (1)

1. 什么是线性模型 (linear Regression model)

线性回归模型通过简单计算输入特征的加权和,再加上一个常数项,即 bias term (又称为 intercept term) 来进行预测,如式-1所示。

【式-1:线性回归模型预测】

y ^ = θ 0 + θ 1 x 1 + θ 2 x 2 + + θ n x x

- y ^ 是预测值
- n 是特征的数量(特征的维度)
- x i 是当前实例(instance)的第 i 维特征的取值
- θ j 是第 j 个模型参数

式-1可以简洁表达为式-2的形式:

【式-2:线性回归模型预测-向量形式】

y ^ = h θ ( x ) = θ T x

- θ = θ 0 , , θ n ,是模型的 参数向量 (parameter vector)
- x = [ x 0 , x 1 , , x n ] T ,   x 0 = 1 ,是当前实例的 特征向量
- h θ 是 假设函数 (hypothesis function),模型参数为 θ

以上即为线性回归模型

2. 线性回归模型怎么训练?

我们说,训练模型指的是:调整模型参数数,使得模型能够最好地拟合训练数据。因此首先,我们需要确定一个标准(performance measure)来衡量 模型对训练数据拟合得到底有多好(以找到“最好”的参数)。

常见的 performance measure 有 RMSE (Root Mean Square Error), MSE (Mean Square Error),由于二者对应的最优解相同,而 MSE 更易于求解,因此也更为常用。

【式-3:线性回归模型的 MSE 代价函数/成本函数 (Cost function)

M S E ( X , h θ ) = 1 m i = 1 m ( θ T x ( i ) y ( i ) ) 2

- m 训练集中的实例数
- X R m × ( n + 1 ) ,即,每一行对应一个实例

下面将 M S E ( X , h θ ) 简记为 M S E ( θ ) 。在训练模型的过程中,只需要求得使得上述 MSE 代价函数 取值最小的参数即可。换句话说,训练过程就是优化问题 min M S E ( θ ) 的求解过程。一般来说,求解方法分为两种:
1. 直接求得解析解,
2. 利用迭代优化方法,逐渐将模型参数调整到能够在训练集上最小化目标函数

3. 标准方程 Normal Equation

min M S E ( θ ) = 1 m i = 1 m ( θ T x ( i ) y ( i ) ) 2 M S E ( θ ) = ( X θ y ) T ( X θ y ) = θ T X T X θ 2 y T X θ + y T y l e t     d   M S E ( θ ) d   θ = 0 t h e n     θ = ( X T X ) 1 X T y

  • θ :是 优化问题的最优解 (使得代价函数取得最小的解)
  • y = [ y ( 1 ) , y ( 2 ) , , y ( m ) ] T 是目标值向量

计算复杂度

这里我们再来看一下利用闭式解(closed-form solution)求解的计算复杂度问题。

利用闭式解求解时,复杂度主要体现在矩阵求逆的部分。我们知道, X T X 是一个 n × n 的矩阵,而 n 阶矩阵求逆的典型复杂度为 O ( n 2.4 ) O ( n 3 ) (具体与实现方法有关)。这就意味着,当特征维度增大一倍的时候,计算时间会粗略增长至原来的 2 2.4 = 5.3 2 3 = 8 倍。

因此,当特征维度较大时,通过闭式解求解需要消耗大量的时间。

另一方面,该算法与训练样本的数的关系是线性的,即 O ( m ) ,因此,当训练样本集很大时,若存储空间足够,该算法的效率较高。

该算法的复杂度为 O ( m n ) + O ( n x ) ,   x [ 2.4 , 3 ]

由上面的分析我们知道,当 特征维度较大 或 存储空间不够时,利用解析解求解线性回归问题就会出现问题。

基于梯度下降求解 & 示例代码 请看 线性回归 Linear Regression (2)

猜你喜欢

转载自blog.csdn.net/tsinghuahui/article/details/80207808