求一个函数的参数,例如下面这个方程,我们一般都会用梯度下降法去求。
还会不会有其他方法求参数呢?答案是有的,可以用正规方程(Normal Equation)去求参数。
那么问题来了,什么是正规方程呢?这个方程长什么样子,就让我们来见识一下。
其中 X 是一个矩阵,这个矩阵的每一行都是一组特征值,y 是数据集结果的向量。
举个例子,还是求房价,现在有 4 组训练集,如下表:
x_0 就代表常数项。在这个例子中,矩阵 X 为:
可以看出,矩阵 X 的每一行都代表一组数据集的特征值。向量 y 为:
这样通过正规方程就可以很容易地求出参数 θ(一定要注意,这里的参数 θ 是一个向量)。
既然求参数 θ 有两种方法,一个为梯度下降法,一个为正规方程,那么他俩之间一定会有优缺点,下表就是这两种方法的优缺点的对比:
当特征值 n 非常大时,正规方程工作效率低的原因是要求一个非常大的矩阵的逆矩阵。
提到逆矩阵,就会出现矩阵的不可逆性,如果我们遇到了矩阵不可逆该怎么办呢?
正规方程有两种情况会出现不可逆性,也就是这个矩阵无法得出。
第一种情况:出现了两个相似的特征,这个两个特征可以用一个线性关系进行表示。例如,米和英尺,这两个都是用来描述长度的单位,且他们之间可以进行相互转化,如果特征值同时出现他们两个,就会出现矩阵不可逆的情况。
解决方法:去掉任意一个即可。
第二种情况:特征值的数量特别多,但是数据集的数量特别少。
解决方法:增加数据集或减少特征值。