4.1 多维特征

那么:支持多变量的假设表示为:
.
这个公式中有个参数和
个变量,为了使得公式能够简化一些,引入
,则公式转化为:
.
此时模型中的参数是一个维的向量,任何一个训练实例也都是
维的向量,因此公式可以简化为:
,其中上标
代表矩阵转置。
4.2 多变量梯度下降

例时:
4.3 梯度下降法实践1-特征缩放
4.3.1 特征缩放

以房价问题为例(左图),假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
4.3.1 均值归一化

总结:
最简单的方法是令: ,其中
是平均值,
是特征值的范围(最大值减去最小值)。
在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,即通过特征缩放,帮助梯度下降算法更快地收敛。
4.4 梯度下降法实践2-学习率


- 可以通过三倍三倍的增加去找到合适的学习率,通过观察
图更好的判断是否达到较好的收敛效果。
4.5 特征和多项式回归


如图, 线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型,假设使用,其中
(面积),那么在初始阶段房价随着面积增加,随着面积不断增加,房价最终会下降。为了更好的拟合,可以使用 三次方模型:
.另外,我们可以令:
,
,从而将模型转化为线性回归模型。
根据函数图形特性,我们还可以使:,或者:
.
可以自由选择特征和回归多项式,同时在运行梯度下降算法前,特征缩放非常有必要,具体看视频回顾。
4.6 正规方程(区别于迭代方法的直接求解法)

正规方程是通过求解下面的方程来找出使得代价函数最小的参数的: .
假设我们的训练集特征矩阵为 (包含了
)并且我们的训练集结果为向量
,则利用正规方程解出向量
.
总结一下,只要特征变量的数目并不大,标准方程是一个很好的计算参数的替代方法。具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法。但对于特定的线性回归模型,标准方程法是一个比梯度下降法更快的替代算法。所以,根据具体的问题,以及你的特征变量的数量,这两种算法都是值得学习的。
4.7 正规方程在矩阵不可逆情况下的解决方法
首先,看特征值里是否有一些多余的特征,例如是以英尺为尺寸规格计算的房子,
是以平方米为尺寸规格计算的房子,像这些
和
是相关的,互为线性函数。同时,当有一些多余的特征时,可以删除这两个重复特征里的其中一个,无须两个特征同时保留,将解决不可逆性的问题。因此,首先应该通过观察所有特征检查是否有多余的特征,如果有多余的就删除掉,直到他们不再是多余的为止,如果特征数量实在太多,我会删除些 用较少的特征来反映尽可能多内容。
其实,即便是不可逆,用Octave里来实现的计算,都会得到一个正常的解。在Octave里,有两个函数可以求解矩阵的逆,一个被称为pinv(),另一个是inv(),这两者之间的差异是些许计算过程上的,一个是所谓的伪逆,另一个被称为逆。使用pinv() 函数,即便矩阵
是不可逆的,也能计算出
的值。
总之,出现不可逆矩阵的情况极少发生,所以在大多数实现线性回归中,出现不可逆的问题不应该过多的关注的计算问题。
