目录
正规方程
正规方程干嘛的? 用来直接求解线性模型的最优解的方法,
即如果你的拟合函数为
(线性模型)
对应的损失函数:
那么可以直接得到h关于θ的最优解
(这就是正规方程)
X为训练集特征矩阵,为X的转置,训练集结果(标签)为y。
特点与用法
无需迭代计算。
只适用于线性模型,不适合逻辑回归模型。
逆矩阵计算耗时O(n^3),所以使用数据量不太大的时候可用。
PS:
正规方程中有矩阵的逆,一般实际使用中矩阵是可逆的,如果不可逆,需要检查你的特征是否有相互关系,如特征3是由特征1与特征2合成的。
Python code
Res = np.linalg.inv(X.T*X)*X.T*Y #X.T*X == np.dot(X.T,X)
推导
推导过程如下:
损失函数:
其中为拟合函数。
将上式向量表达转换为矩阵表达形式有:
其中X为m行n列矩阵(m个样本,每个样本抽象n个特征),θ为n行1列矩阵,y为m行1列矩阵。
=
由线性代数导数与偏导数等于0时的意义(可观察图像曲线)可知
当 时,J(θ)取最小(损失最小)
=
=
=
PS:上面用到的矩阵求导公式有
令 得
θ = (X^TX)^-1X^Ty (这就是正规方程)