线性回归(Linear Regression)
上篇博客举了这么一个例子:已知的住房面积和住房价格的数据集如下:
$Size~in~Feet^2(x)$ | $Price~in~1000’s(y)$ |
---|---|
2104 | 460 |
1416 | 232 |
1534 | 315 |
852 | 178 |
…… | …… |
很显然,在这个例子中假设只有房屋的大小才能影响房屋的价格,因为只含有一个特征/输入变量,所以这种问题我们叫做单变量线性回归。如果我们要根据以上的数据集预测某一房屋的住房价格,可以不用像初高中那样用线性回归的方式来预测。
那么我们初高中,包括本科统计学在内学习的线性回归到底是什么呢?
最小二乘法(Least Square Method)
比如说再简单不过的一元线性回归,我们令线性回归方程为:
而损失函数 $J(a,b)$,也就是均方误差(MSE)为:
令损失函数最小,就可以求得 $\hat a,\hat b$:
通过将 $J(a,b)$ 分别对 $a,b$ q求偏导,并令其为 $0$,就可以求得下面的答案:
这就是我们以前死记硬背的公式🙂。
基于均方误差最小化来进行模型求解的方法称为最小二乘法,得到损失函数参数的过程被称作最小二乘参数估计。
正规方程(Normal Equation)
对于线性回归问题来说,很有可能面对的不是一个变量,而是一堆变量。我们可以通过将参数向量化来用最小二乘法估计参数。
一个多变量的关于房价预测的线性回归问题的数据集如下:
Size $x_1$ | Number of bedrooms $x_2$ | Number of floors $x_3$ | Age of home $x_4$ | Price $y$ |
---|---|---|---|---|
2104 | 5 | 1 | 45 | 460 |
1416 | 3 | 2 | 40 | 232 |
1534 | 3 | 2 | 30 | 315 |
852 | 2 | 1 | 36 | 178 |
将$x_0 = 1$放在表的第一列,并且刨除我们的结果向量$y$,组合成的矩阵$X$叫做特征矩阵。
显然,特征矩阵是一个$m\times {(n+1)}$的矩阵。
令$X = {\begin{bmatrix} x0^{(1)}&x_1^{(1)}&\cdots&x_n^{(1)}\ x_0^{(1)}&x_1^{(2)}&\cdots&x_n^{(2)}\ \vdots&\vdots&\ddots&\vdots\ x_0^{(m)}&x_1^{(m)}&\cdots&x_n^{(m)} \end{bmatrix}}{m\times(n+1)}$为有$m$个训练实例,$n$个特征的特征矩阵,$ y=
\begin{bmatrix}
y^{(1)}\y^{(2)}\\vdots\y^{(m)}
\end{bmatrix}$为结果向量,$\theta = \begin{bmatrix}\theta_0\\theta_1\\vdots\\theta_n\end{bmatrix}$为特征参数向量。
代价函数为:
在对代价函数$J(\theta_0,\theta_1\dots\theta_n)$求导之前,先看一下如何对矩阵以及向量求导,在本次求导中,会用到以下三个公式:
其中$\beta,X$是向量,$A$是与$X$无关的矩阵。
代价函数$J(\theta_0,\theta_1\dots\theta_n)=$对特征参数$\theta$进行求导得:
其中$\theta^TX^Ty$为一个数,$\theta^TX^Ty = y^TX\theta$。
当$\frac{\partial}{\partial\theta}J(\theta)=\frac{1}{m}(X^TX\theta-X^Ty)=0$时,$\theta = (X^TX)^{-1}X^Ty$。
所以,假设我们的特征方程$X$与结果向量$y$,我们可以通过正规方程:
来解出最优的系数向量$\theta$来确定最优假设。
可能会碰到$X^TX$矩阵不可逆的情况,碰到这种情况可能有以下两种原因:
- 特征矩阵$X$中有着多余的特征:比如$x_1$是以英尺为尺寸规格计算房子的面积,$x_2$是以平方米为尺寸规格计算房子的面积
- 数据集过小,或者特征过多,也就是说在$m$小于或等于$n$的时候。
正规方程与梯度下降的比较
梯度下降 | 正规方程 |
---|---|
需要手动选择学习率 $\alpha$ | 不需要 |
需要多次迭代 | 一次运算得出 |
当特征数量$n$大时也能较好适用 | 需要计算$(X^TX)^{-1}$,如果特征数量$n$较大则运算代价大,因为矩阵逆的计算时间复杂度为$O(n^3)$,通常来说当小于$n<10000$ 时还是可以接受的 |
适用于各种类型的模型 | 只适用于线性模型,不适合逻辑回归模型等其他模型 |