对于一组训练集,我们可以将其分为三个向量X,Y,Θ
因为对于X, Y, θ来说,他们符合h(x)=y,所以矩阵意义上来说
X · θ = Y
对于一般的方程式,若想知道θ的值,直接把X除过去就行,但是这里因为X是矩阵,不一定存在X的逆矩阵(非方阵),所以左右两边先X的转置矩阵
XT·X · θ = XT·Y (XT为X的转置矩阵)
这样XT·X就是方阵了,只要行列式不为0,就存在逆矩阵了
左右两边乘上XT·X的逆矩阵(假设存在,后讨论可能不存在的情况)
θ = (XT·X)^-1 ·XT·Y
这就是正规方程(Normal Equation)
但是,XT·X的逆矩阵有可能不存在,不存在的原因就几种:
1.特征冗余 也就是说选取的特征直接存在线性关系,如正方形的面积与边长,解决方案是删掉冗余的特征
2.特征过剩 例如特征n的个数比训练集m的个数还多,解决方案是删除部分特征或用“正则化”
正规方程与梯度下降对比:
两者都是用于求最佳的θ值,不过两种方法有不同的应用场景
正规方程不需要算α,而且不像梯度下降一般,而是一步到位,但是复杂度为o(n^3),适合n较小时的场景
梯度下降的复杂度为o(n^2),更适合n更大的场景。