多变量线性回归
多变量线性回归
一、多维特征
1.1 引入
对房价模型增加特征,如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,…,xn)
1.2 几个变量
① n:特征的数量
② x(i):第i个训练实例,即特征矩阵中的第i行,例如:
③ xj(i):特征矩阵中第i行第j个特征,即第i个训练实例的第j个特征,例如
1.3 多变量公式
支持多变量的假设h表示为:
为使公式简化,引入x0=1,此时模型中的参数是一个n+1维的向量,
即特征矩阵X的维度是m*(n+1),公式化简为
二、多变量梯度下降
2.1 构建代价函数:
其中:
2.2 多变量线性回归的批量梯度下降算法
求导数后得到:
当n≥1时,
随机选择一系列参数值,计算所有预测结果,再给所有的参数一个新的值,循环直到收敛。
三、梯度下降实践——特征缩放
面对多维特征问题时,要保证特征具有相近的尺度,帮助梯度下降算法更快收敛。
3.1 提出问题
假设房价问题具有两个特征,房屋尺寸和房间数量,
房间尺寸的值为0-2000平方英尺,
房间数量的值为0-5,
以两个参数分别为横纵坐标,绘制代价函数等高线图,可以看出图像很扁,梯度下降算法需要很多次迭代才能收敛
3.2 解决方案
尝试将所有特征的尺度缩放到-1~1之间。
最简单的方法是令:
其中μn是平均值,sn是标准差
四、梯度下降实践——学习率
通过绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛
梯度下降算法每次迭代受学习率的影响。
①学习率α过小,达到收敛所需的迭代次数很高。
②学习率α过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
可以考虑尝试的学习率α:
0.01,0.03,0.1,0.3,1,3,10
五、特征和多项式回归
以房价预测问题为例
x1 = frontafe(临街宽度)
x2 = depth(纵向深度)
x = frontafe * depth = area(面积)
则:
或者二次方模型:
三次方模型:
根据函数图形特征,还可以使:
注:若采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要
六、正规方程
正规方程通过求解下面的方程来找出使得代价函数最小的参数
假设训练集特征矩阵为X(包含x0=1),并且训练集结果为向量y,利用正规方程解出向量
上标T代表矩阵转置,上标-1代表矩阵的逆
设矩阵A=XTX,则(XTX)-1=A-1
例如:
即:
用正规方程求解参数:
在Octave中,正规方程写作:pinv(X’X)X’y
对于不可逆矩阵,正规方程方法无法使用。
不可逆矩阵:
①特征之间不独立,同时包含多种不同尺寸的特征
②特征数量大于训练集的数量
总结:
特征变量的数目不大(小于一万)——标准方程
七、正规方程及不可逆性
7.1提出问题
正规方程
θ=inv(X’X)X’y中X’X结果不可逆
7.2不可逆矩阵
不可逆矩阵也成为奇异或退化矩阵。
7.3产生原因
①特征之间不独立,同时包含多种不同尺寸的特征
例如:在预测住房价格时,x1是以英尺为尺寸规格计算的房子,x2是以平方米为尺寸规格计算的房子,这样,两个特征值始终满足约束:x1=x2(3.28)2
②特征数量大于训练集的数量
当尝试从10个训练样本中找到满足101个参数的值,这工作会花费很长的时间。通常,会使用一种叫做正则化的线性代数方法,通过删除某些特征或者使用某些技术解决该问题
7.4解决方法
①删除无用特征
②当特征线性相关时,删除两个重复特征中的其中一个
③删除较少使用的特征
在Octave中,可以用伪逆函数pinv()来实现,即使X’X的结果不可逆,但算法执行的流程是正确的