多变量线性回归
多变量线性回归假设函数
多变量假设函数的标准形式(multivariable hypothesis function)
$$
\begin{align}h_\theta(x) =\begin{bmatrix}\theta_0 \hspace{2em} \theta_1 \hspace{2em} … \hspace{2em} \theta_n\end{bmatrix}\begin{bmatrix}x_0 \newline x_1 \newline \vdots \newline x_n\end{bmatrix}= \theta^T x\end{align}
$$
多变量的梯度下降
$$
\begin{align}& \text{Repeat until convergence:} ; \lbrace \newline ; & \theta_j := \theta_j - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_j^{(i)} ; & \text{for j := 0…n}\newline \rbrace\end{align}
$$
特征缩放(Feature Scaling)
和均值正规化(mean normalization)
可以加快梯度下降的速度(缩小范围,减少迭代次数)。
$$
x_i := \dfrac{x_i - \mu_i}{s_i}
$$
学习速率(Learning Rate)
:现已证明,如果学习速率\(\alpha\)充分小,则损失函数\(J(\theta)\)会(单调递减)随着迭代次数的增加而减小。总之阈值(threshold)
很难确定。
若\(\alpha\)太小,则收敛速度慢;
若\(\alpha\)太大,则损失函数可能不单调递减而不收敛。
多项式回归
多元函数和多项式函数的转换:
$$
h_\theta(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_1^2 + \theta_3 x_1^3
$$
可转换为
$$
h_\theta(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x_3
$$
即\(x_2 = x_1^2, x_3 = x_1^3\),此时需要特别注意的是featrue scaling
:如果\(x_1\)取值[1,1000],那么\(x_2\)的取值范围将是[1,1000000],\(x_3\)则是[1,1000000000]。
使用法方程(Normal Equation)进行参数计算
线性回归的法方程:
$$
\theta = (X^T X)^{-1}X^T y
$$
注意,法方程中的\(X\)维数是\(m\times (n+1)\),因为加了一列全是1的列向量以保存\(\theta_0\),即截距项(intercept term)
。
梯度下降 | 法方程 |
---|---|
需要选择\(\alpha\) | 无需选择\(\alpha\) |
需要迭代 | 无需迭代 |
\(O(kn^2)\)(\(k\)是迭代次数) | \(O(n^3)\)(矩阵求逆具有三次方的复杂度) |
特征数量\(n\)很大的时候效果很好 | \(n\)很大的时候非常慢(<10000) |
法方程不可逆
法方程有解的充分条件是\(X^TX\)可逆,而一些常见的因素可能会导致其不可逆:
- 冗余特征(Redundant features),即可能有多个特征强相关(线性相关)–> 删除相关特征
- 过多特征 (e.g. m ≤ n),即特征数量超过样本数量 –> 减少特征