1. 什么是线性模型 (linear Regression model)?
线性回归模型通过简单计算输入特征的加权和,再加上一个常数项,即 bias term (又称为 intercept term) 来进行预测,如式-1所示。
【式-1:线性回归模型预测】
- ŷ y ^ 是预测值
- n n 是特征的数量(特征的维度)
- 是当前实例(instance)的第 i i 维特征的取值
- 是第 j j 个模型参数
式-1可以简洁表达为式-2的形式:
【式-2:线性回归模型预测-向量形式】
- θ=θ0,⋯,θn θ = θ 0 , ⋯ , θ n ,是模型的 参数向量 (parameter vector)
- x=[x0,x1,⋯,xn]T, x0=1 x = [ x 0 , x 1 , ⋯ , x n ] T , x 0 = 1 ,是当前实例的 特征向量
- hθ h θ 是 假设函数 (hypothesis function),模型参数为 θ θ
以上即为线性回归模型。
2. 线性回归模型怎么训练?
我们说,训练模型指的是:调整模型参数数,使得模型能够最好地拟合训练数据。因此首先,我们需要确定一个标准(performance measure)来衡量 模型对训练数据拟合得到底有多好(以找到“最好”的参数)。
常见的 performance measure 有 RMSE (Root Mean Square Error), MSE (Mean Square Error),由于二者对应的最优解相同,而 MSE 更易于求解,因此也更为常用。
【式-3:线性回归模型的 MSE 代价函数/成本函数 (Cost function)】
- m m 训练集中的实例数
- ,即,每一行对应一个实例
下面将
MSE(X,hθ)
M
S
E
(
X
,
h
θ
)
简记为
MSE(θ)
M
S
E
(
θ
)
。在训练模型的过程中,只需要求得使得上述 MSE 代价函数 取值最小的参数即可。换句话说,训练过程就是优化问题
minMSE(θ)
min
M
S
E
(
θ
)
的求解过程。一般来说,求解方法分为两种:
1. 直接求得解析解,
2. 利用迭代优化方法,逐渐将模型参数调整到能够在训练集上最小化目标函数
3. 标准方程 Normal Equation
- θ∗ θ ∗ :是 优化问题的最优解 (使得代价函数取得最小的解)
- y=[y(1),y(2),⋯,y(m)]T y = [ y ( 1 ) , y ( 2 ) , ⋯ , y ( m ) ] T 是目标值向量
计算复杂度
这里我们再来看一下利用闭式解(closed-form solution)求解的计算复杂度问题。
利用闭式解求解时,复杂度主要体现在矩阵求逆的部分。我们知道, XTX X T X 是一个 n×n n × n 的矩阵,而 n n 阶矩阵求逆的典型复杂度为 至 O(n3) O ( n 3 ) (具体与实现方法有关)。这就意味着,当特征维度增大一倍的时候,计算时间会粗略增长至原来的 22.4=5.3 2 2.4 = 5.3 至 23=8 2 3 = 8 倍。
因此,当特征维度较大时,通过闭式解求解需要消耗大量的时间。
另一方面,该算法与训练样本的数的关系是线性的,即 O(m) O ( m ) ,因此,当训练样本集很大时,若存储空间足够,该算法的效率较高。
该算法的复杂度为 O(mn)+O(nx), x∈[2.4,3] O ( m n ) + O ( n x ) , x ∈ [ 2.4 , 3 ]
由上面的分析我们知道,当 特征维度较大 或 存储空间不够时,利用解析解求解线性回归问题就会出现问题。
基于梯度下降求解 & 示例代码 请看 线性回归 Linear Regression (2)