Skip to content

正规方程

正规方程

正规方程是区别于迭代方法的直接解法。
例如:\(m=4\).

\(x_0\) \(x_1\) \(x_2\) \(x_3\) \(x_4\) \(y\)
1 2104 5 1 45 460
1 1416 3 2 40 232
1 1534 3 2 30 315
1 852 2 1 36 178
\[ X = \begin{bmatrix} 1&2104&5&1&45\\ 1&1416&3&2&40\\ 1&1534&3&2&30\\ 1&852&2&1&36 \end{bmatrix} \]
\[ y= \begin{bmatrix} 460\\232\\315\\178 \end{bmatrix} \]
\[ \theta = (X^TX)^{-1}X^Ty \]

\(m\) examples \((x^{(1)},y^{(1)}),\ldots,(x^{(m)},y^{(m)})\); \(n\) features

$$ x^{(i)}= \begin{bmatrix} x^{(i)}_0\x^{(i)}_1\x^{(i)}_2\\vdots\x^{(i)}_n\ \end{bmatrix} \in \mathbb{R}^{n+1} $$ 对于 \(\theta = (X^TX)^{-1}X^Ty\)\((X^TX)^{-1}\)\(X^TX\) 的逆矩阵。

Octave: pinv(X'*X)*X'*y

如果使用正规方程法,不需要做特征缩放

与梯度下降法比较

梯度下降法需要选择学习率 \(\alpha\),需要迭代。

梯度下降法在特征很多时仍然可以运行得相当好。

正规方程法需要计算\((X^TX)^{-1}\),时间复杂度 \(O(n^3)\),当 \(n\) 较大时耗时长。

正规方程法在很多算法中不适用,但是对于线性回归,仍然是很好的解决方案。

矩阵 \(X^TX\) 不可逆

在这种情况下,在 Octave 中,使用 pinv 函数仍可以正确计算出 \(\theta\) 的值。

如果不可逆,可能存在冗余的特征,或者是有过多的特征。