机器学习(三)——正规方程法
第二种方法:正规方程法
这里有四个训练样本,以及四个特征变量x1,x2,x3,x4,观测结果是y,还是像以前一样,我们在列代价函数的时候,需要加上一个末尾参数x0,如下:
这样我们就可以通过下面这个公式得出参数θ最优解。
推导过程:
另一种方法:
训练样本的所有特征参数由x来表示
梯度下降法和正规方程法的优缺点比较:
假设有m个样本和n个特征变量
1.需要选择学习速率α,尝试多个找到最优 1.不需要
2.需要多次迭代 2.不需要
3.在很多特征变量的情况下也能运行得很好 3.n很大的时候计算会很慢,n不大时效果更好
梯度下降法:
缺点:
需要选择学习速率α,而之前的学习也知道α的选择其实十分的困难,非常消耗我们的时间来调试并且选择它。
需要多次迭代,这也是非常消耗时间的。
优点:
当特征参数相当大的时候,梯度下降法也能够很好的工作。
正规方程:
优点:
不需要选择学习速率α
不需要多次迭代
缺点:
需要计算这里写图片描述,而这个计算对于计算机的计算量大致是矩阵维度的三次方,复杂度相当高。
由上面一点就可以看出,当特征参数相当大的时候,正规方程的计算会非常缓慢。
所以,我们该什么时候选择什么方式进行计算呢?
总结:
取决于特征向量的多少,可以将万作为一个界限,当数量小于10000时,直接选择正规方程,当大于10000时,就可以考虑是否换用梯度下降法或者后面的一些其他算法了。
存在不可逆情况如何处理?
我们注意到正规方程有一个求逆矩阵的过程,当得到的该矩阵不可逆该怎么办呢?
遇到这种情况时,一般有两种原因:
第一种,实际上是有线性相关的列向量组,也就是奇异矩阵,不能求逆矩阵;
第二种,也是线性代数的知识
m < n时,也就是维度小于向量个数,在这里也就是样本数小于特征数,线性相关,也就等价于第一种情况,m=n时,|A|=0则不可逆,|A|!=0则可逆
解决上述问题的方法包括删除与另一个线性相关的特征或在特征太多时删除一个或多个特征。