week2-3.Computing Parameters Analytically
一、Normal Equation
正规方程(normal equation)
用求(偏)导的方法求最值(若是多元变量函数,需要对每个变量求偏导,然后令他们都为0):
使用正规方程求J函数最值:
构建设计矩阵:
例子:
用以下公式可直接求出使得代价函数J最小的theta值:
推导过程:
normal equation採用矩阵运算能够直接求解出參数
先介绍下什么是normal equation,如果一个数据集X有m个样本,n个特征。则如果函数为:
。数据集X的特征向量表示为:
表示第i个训练样本,表示第i个训练样本的第j个特征。之所以在X中加了第一列全为1,是为了让
若希望如果函数可以拟合Y,则。又由于,所以可以通过矩阵运算求出參数。
熟悉线性代数的同学应该知道怎么求出參数。可是前提是矩阵X存在逆矩阵。
但仅仅有方阵才有可能存在逆矩阵(不熟悉定理的同学建议去补补线性代数),因此能够通过左乘使等式变成
,因此,有同学可能会有疑问
不一定存在啊,确实是,可是
极少不存在,后面会介绍不存在的处理方法,先别着急。如今你仅仅须要明确为什么就能够了。而且记住。
使用正规方程可以不进行特征缩放。
梯度下降法与正规方程法的优缺点:
推荐:特征变量数小于1w,使用正规方程法;否则使用梯度下降法。
二、Normal Equation Noninvertibility
使用pinv函数在矩阵不可逆(non-invertible/singular/degenerate)情况下也能得到正确的theta值。
矩阵不可逆的几个情况:
解决方法:1.删除重复的特征变量;2.减少特征变量或使用正则化(regularization)方法。