4.多元线性回归
对于多元回归,道理同之前讲述的一样,要引入线性代数表达。此时,可视化描述已经不可能了。现在的假设函数变为:
hθ(x)=θ0+θ1x
———>
hθ(x)=θ0+θ1x1+θ2x2+...θnxn
为了方便数学上的表示,引入
x0=1
,则
θ0=θ0x0
那么可得到假设函数的向量表示:
hθ(x)=θ0x0+θ1x1+θ2x2+...θnxn=θTx
相应的梯度下降算法,参考以前的进行修正即可,最终的表达式反而更简洁:
4.1一些技巧
特征缩放:将所有的特征的数量级都在一个差不多的范围之内, 以加快梯度下降的速度.
如下图所示,经过特征缩放,寻找的梯度将会更快地到达目的地。特征缩放之后,针对的是偏导数,改变的是“探寻的方向”。
特征缩放的两个处理方式:
还有一个特征处理的方法就是均值归一化(Mean normalization):这里的
μi
为范围的均值
确认算法运行的正确与否:画出代价函数
Jθ
随着
θ
的变化图
如果图形变化趋势如下,则说明是正确的。还有一种叫自动收敛测试的方法, 即每次迭代之后观察
Jθ
的值, 如果迭代之后下降的值小于
ϵ
(例如
ϵ=10−3
)就判定为收敛. 不过准确地选择阈值
ϵ
是非常困难的, 通常还是使用画图的方法.
α
的选取:如果出现了下面的两种情况, 这个时候应该选择更小的
α
注意:
如果足够 α 小, 那么 Jθ 在每次迭代之后都会减小。但是如果太小, 梯度下降会进行的非常缓慢.
如果学习率 α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛
可以使用下面几个值进行逐个尝试。(吴老师介绍自己的经验在)
特征选择与多项式回归:
比如在房价预测问题,选取房屋的长和宽作为变量,我们有如下假设函数:
h(θ)=θ0+θ1×frontage+θ2×depth
但是,如果我们考虑到真正决定房屋价格的是面积,那么我们可以重新选择我们的特征
x=frontage×depth
,假设函数变为:
h(θ)=θ0+θ1x
通过这种特征的选择, 我们可能得到一个更好的模型。
有时,观察数据集发现使用多项式拟合更好,比如二次函数三次函数等,
h(θ)=θ0+θ1x+θ2x2+θ3x3
,那么如何使用之前的线性回归模型呢?可以进行如下的特征选择处理 (这里需要注意的是,
x1,x2,x3
的范围差别会非常大, 所以一定要进行特征缩放处理):
4.2正规方程
到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,可以考虑正规方程方法。我们知道,我们的目的是要使得代价函数最小,而代价函数是关于未知参数
θ
的函数,可以利用函数的求导。
具体计算时候,使用的如下式子:
θ=(XTX)−1XTy
(但是why???有点突兀这里,看不太明白 ),就可以算出要求的
θ
值。例子如下:
两者 的比较及使用范围: