吴恩达机器学习第四章学习笔记

多变量线性回归(linear regression with multiple variables)

基本公式及字母

在这里插入图片描述
一个数据对应着上表中的一行, θ ( 2 ) \theta^{(2)} θ(2)代表第二个数据。(也就是表中红线圈出的位置)
x j ( i ) x_j^{(i)} xj(i):代表第i个数据,第j个特征量
x 3 ( 2 ) x_3^{(2)} x3(2)代表2
多元线性回归公式为:
h θ ( x ( i ) ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + … … + θ n x n h_\theta^{(x^{(i)})}=\theta_0x_0+\theta_1x_1+\theta_2x_2+……+\theta_nx_n hθ(x(i))=θ0x0+θ1x1+θ2x2++θnxn
x 0 = 0 x_0=0 x0=0得:
h θ ( x ( i ) ) = θ 0 + θ 1 x 1 + θ 2 x 2 + … … + θ n x n h_\theta^{(x^{(i)})}=\theta_0+\theta_1x_1+\theta_2x_2+……+\theta_nx_n hθ(x(i))=θ0+θ1x1+θ2x2++θnxn
化简得到 h θ ( x ( i ) ) = θ T x h_\theta^{(x^{(i)})}=\theta^Tx hθ(x(i))=θTx
J ( θ 0 , … … , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,……,\theta_n)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta^{(x^{(i)})}-y^{(i)})^2 J(θ0,,θn)=2m1i=1m(hθ(x(i))y(i))2
梯度下降算法:
θ j : = θ j − α ∂ J ∂ θ j \theta_j:=\theta_j-\alpha\frac{\partial{J}}{\partial\theta_j} θj:=θjαθjJ

多元线性回归的梯度下降算法

联立上述各式得:
在这里插入图片描述
代入j的值就如下图所示:
在这里插入图片描述
多元线性回归的梯度下降算法与单变量线性回归的梯度下降算法的区别如下所示:
在这里插入图片描述
总而言之,单变量是多变量的特殊形式,n=1时为单变量,n>1时为多变量。

特征值缩放(feature scaling)

为了加速梯度下降,我们通常把特征量的取值缩小到一个适当的范围,这个范围不可过大,也不可过小,若-a < x j < <x_j< <xj<a,a通常不大于10,a可以等于 1 3 \frac{1}{3} 31,但a不能等于像 0.00001 0.00001 0.00001这样过小的数。每个 x j x_j xj的范围要大致相同(相似),但也不要求完全严格一样。如(-4,4)与(0,3)这两个区间就可以看作大致相同(相似)。
均值归一化(mean normalization):通过这个方法可以确定 x j x_j xj的取值范围
公式为: x j : = x j − μ j s j x_j:=\frac{x_j-\mu_j}{s_j} xj:=sjxjμj x 0 x_0 x0除外)
x j x_j xj:第j个特征量
μ j \mu_j μj:数据集中所有的 x j x_j xj的平均值
s j s_j sj:该特征值的范围(即最大值-最小值)

学习速率 α \alpha α

如何确定梯度下降算法正常工作?

通过代价函数随迭代步数变化的二维曲线图判断。
在这里插入图片描述
在这里插入图片描述
像上图都表示未正常工作,为了解决这个问题,我们需要选择一个较小的 α \alpha α值。
在这里插入图片描述
像上图就表示正常工作了,代价函数可以通过很多步的迭代到达最小值,代价函数从而收敛。

如何选择 α \alpha α呢?

在这里插入图片描述
我们可以像上图那样选择 α \alpha α的范围,然后画出代价函数与迭代步数的二维曲线图,寻找如上图梯度下降算法正常工作的图像,然后确定 α \alpha α的值。

多项式回归(polynomial regression)在这里插入图片描述

上图,我们可以选择一个三次函数拟合数据。

特征量的选择

在这里插入图片描述
通常我们是先有数据,后根据数据选择一个能更好的拟合的算法,这通常与如何选择特征量有关。如上图所示,我们除了选择三次函数拟合数据,也可以选择一个平方平方根函数拟合数据。

标准方程法(normal equation)

一种可以直接求出 θ \theta θ值的算法。并且不用考虑均值归一化。
在这里插入图片描述
如上图所示, θ \theta θ为实数, J ( θ ) J(\theta) J(θ)是一个以 θ \theta θ为变量的二次函数,在中学我们就学过如何求出 θ \theta θ的值。在这里插入图片描述
上图的X被称为设计矩阵(designed matrix),X的构造过程如下图所示:
在这里插入图片描述
由此,我们可以得到原始公式: y = X θ y=X\theta y=Xθ
经过一系列变形得到最终结果: θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy(之所以最后是这个结果是因为要考虑到矩阵的维度)

梯度下降算法与标准方程算法的优缺点

在这里插入图片描述
总的来说,当n的值比较大时我们最好选择梯度下降算法,当n的值较小,我们可以选择标准方程算法。(n=10000是一个不错的分割点)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值