吴恩达机器学习笔记3-多变量线性回归

上一节中讲的是单个变量的处理方法,那多变量问题要怎么办呢?
(X上标(2)是一个索引,代表着第二个训练集样本,此处指的是表格中的第二行。)
吴恩达机器学习笔记3-多变量线性回归
吴恩达机器学习笔记3-多变量线性回归
梯度运算的使用技巧1:特征缩放(feature scaling)
数据预处理中,标准的第一步是数据归一化。如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是[1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;
而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。
因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
吴恩达机器学习笔记3-多变量线性回归
归一化(mean normalization):
吴恩达机器学习笔记3-多变量线性回归

特征值的范围的标准差做分母(也可以是最大值减去最小值),然后每个特征值减去它们的的平均值做分子。(因为只要使得特征值范围相近就OK)

目的是使特征在一个相近的范围,更快的收敛。

上图中的bedrooms特征那里的分母应该是4。但是就算是5,对梯度下降计算来说影响也不大,因为特征缩放并不需要非常精确,只要范围相近就OK。

梯度运算的使用技巧2:寻找合适的学习率(learning rate)α

查看代价函数曲线,选择合适的α。
吴恩达机器学习笔记3-多变量线性回归
通常选择合适的阈值ε是相当困难的,为了检查梯度下降算法是否收敛,常选择查看代价函数曲线,而不依靠自动收敛测试。
α过大会导致代价函数振荡或者发散,α过小会导致代价函数收敛太慢。
吴恩达机器学习笔记3-多变量线性回归
为了选择更好的学习率α,所以通常选择相差10倍的值来测试,然后查看代价函数图,从而找到合理的值。(下图中选择还有3倍的数字)
吴恩达机器学习笔记3-多变量线性回归
特征和多项式回归
首先,我们要选择合适的特征。
例如有房子临街宽度和垂直宽度,使用这两个特征不如创造新的特征——面积,即面积这个新的特征能更好决定房子价格。
吴恩达机器学习笔记3-多变量线性回归
其次,将多项式拟合到假设模型中。比如求一个房子的价格,用二次函数明显是不合适的,因为二次函数到某个点会房子的价格会降下来。所以此时选择三次函数。
吴恩达机器学习笔记3-多变量线性回归
如何选择函数去拟合呢?
具体还是需要根据特征来选择函数。

正规方程(normal equation)
如何求最优解?让导数为0得到最小值。但是,对于多变量线性问题,要分别对θ0,θ1…分别求偏导,如果变量很多,需要不断迭代,比较麻烦。此时,可以用正规方程法。
吴恩达机器学习笔记3-多变量线性回归
最后变成矩阵问题(求θ最优解):
吴恩达机器学习笔记3-多变量线性回归
x0取值永远是1。m是训练样本数量,n是特征变量数。X是m*(n+1)维矩阵,y是m维向量。
吴恩达机器学习笔记3-多变量线性回归
吴恩达机器学习笔记3-多变量线性回归
吴恩达机器学习笔记3-多变量线性回归