ml 学习笔记2(Andrew Ng)多变量线性回归
2.1 多维特征
n 代表特征的数量
x(i)代表第 i 个训练实例,是特征矩阵中的第 i 行,是一个向量(vector)。
房间数楼层:1


转置
2.2 多变量梯度下降
代价函数:
批量梯度算法:

我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的
值,如此循环直到收敛
2.3 梯度下降算法 特征缩放
如果参数范围过大导致图像使梯度下降算法需要非常多次迭代
我们可以将所有特征的尺度都尽量缩放到-1到1之间
最简单的方法是:

2.4 梯度下降算法 学习率
梯度下降算法收敛所需要的迭代次数各有不同,我们为了观测算法在何时收敛,可以绘制迭代次数和代价函数的图表

梯度下降算法的每次迭代受到学习率的影响,如果学习率 α 过小,则达到收敛所需的迭 代次数会非常高;如果学习率 α 过大,每次迭代可能不会减小代价函数,可能会越过局部最 小值导致无法收敛。 通常可以考虑尝试些学习率: α=0.01,0.03,0.1,0.3,1,3,10
2.5 特征和多项式回归
有时会用到二次方模型或者三次方模型
我们可以令:
转换为线性回归模型
有时还可以:

采用多项式回归模型,运行梯度下降算法,特征缩放很关键
2.6 正规方程
有时用正规方程使更好的解决方法

python求解正规方程:
import numpy as np import matplotlib.pyplot as plt #原始数据 假设关系为 y=3+x+2z ==== y=a+bx+cz x=np.mat([1,2,3,4,5,6]) z=np.mat([1,1,2,2,3,3]) y=np.mat([6,7,10,11,14,15]) y=y.T a=0 b=0 c=0 canshu=np.mat([a,b,c]) canshu=canshu.T print(canshu) bianliang=np.column_stack(([1,1,1,1,1,1],x.T,z.T)) print(bianliang[:,0]) #学习速率 canshu=(bianliang.T*bianliang).I*bianliang.T*y print(canshu)

注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺为单位的尺
寸和米为单位的尺寸两个特征,也有可能是特征数量大于训练集的数量),正规方程方法是
不能用的。
梯度下降与正规方程的比较:

浙公网安备 33010602011771号