4.多变量线性回归

1. 多元线性回归

1. 单变量线性回归

假设函数: hθ(x)=θ0+θ1x

2. 多元线性回归

记号:

n = number of features 表示特征的数量
x(i)= input (features) of ith training example.

表示第i个样本的输入特征(特征向量), 比如 x(2) 表示第二个训练样本的特征向量;

在这种记法中,上标2是训练集的一个索引,对应着表格中的第二行,即第二个训练样本, 此时x(2)是一个四维向量

xji= value of feature j in ith training example. 表示第i个训练样本中第j个特征量的值

假设函数:

2. 梯度下降应用于多元线性回归

只有一个特征值的情况:

Repeat until convergence {

θ0:=θ0α1mi=1m(hθ(x(i))y(i))θ1:=θ1α1mi=1m(hθ(x(i))y(i))x(i)

}

(simultaneously update)

多个特征值的情况:

Repeat until convergence {

θj:=θjα1mi=1m(hθ(x(i))y(i))x(i)

}

(simultaneously update θj for j=0,1,...,n )

例如:两个或更多个特征值

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x0(i)θ1:=θ1α1mi=1m(hθ(x(i))y(i))x1(i)θ2:=θ2α1mi=1m(hθ(x(i))y(i))x2(i)...

3. 梯度下降的实用技巧-特征缩放

假设有一个机器学习问题,这个问题有多个特征,如果能够确保这些特征都处在一个相近的范围,
即确保不同特征的取值在相近的范围内,这样梯度下降法就能很快地收敛

案例:

x1= size (0-2000 feet2)
x2 = number of bedrooms (1-5)

暂时忽略θ0,如果x1的取值范围远远大于x2的取值范围的话,最终画出来的代价函数J(θ)的等高线会又瘦又高

如果在这种代价函数上运行梯度下降的话,梯度可能会花费很长一段时间并且可能来回波动,然后会经过很长
时间最终才收敛到最小值

在这种情况下,一种有效的方法是进行特征缩放

1. 特征缩放的方法1:除以特征的最大值

x1= size(feet2)2000

x2 = numberofbedrooms5

此时代价函数J(θ)的等高线就会变得偏移没那么严重, 即可能看起来更圆一些

在这样的代价函数上执行梯度下降的话,梯度下降算法更容易找到一条通向全局最小的路径

一般地,在执行特征缩放时,我们通常的目的是将特征的取值约束到-1到1的范围内

不用介意特征是否完全在相同的范围或区间内,只要他们足够接近,梯度下降法就会正常工作

经验值:-3 to 3 -1/3 to 1/3 最好不要超过-3 to 3, 不要小于 -1/3 to 1/3

2. 特征缩放的方法2:均值归一化

如果有一个特征xi,用xi-ui来替换xi(ui为特征xi的平均值),从而让特征值具有为0的平均值(不适用于x0)

更一般地,用(xi-ui)/si来替换xi(ui为特征xi的平均值,si为特征xi的范围 最大值-最小值)

4. 梯度下降的实用技巧-学习率

If α is too small: slow convergence.
If α is too large: J(θ) may not decrease on every iteration; may not converge.

绘制J(θ)随代价函数变化的曲线,可以帮助我们弄清楚到底发生了什么

在为梯度下降算法选择合适的学习率时,按3的倍数来取值,尝试一系列α值,直到找到
一个最小的值,再找到一个太大的值,取最大可能值或者比最大值略小一些的比较合
理的值,这样就可以得到一个不错的学习率

5. 特征和多项式回归

特征:

选择合适的特征

有时通过定义新的特征,可能会得到一个更好的模型

多项式回归:

  • 如何将一个多项式如一个二次函数或一个三次函数拟合到数据上;

  • 它使得我们能够使用线性回归的方法来拟合非常复杂的函数,甚至是非线性函数

特征选择:

通过选择不同的特征,有时可以得到更好的模型

6. 正规方程

正规方程:提供了一种求θ的解析解法,即不再需要运行迭代算法,而是可以直接一次性求解θ的最优值,
即一步得到最优值

引例:

实现特征方程的步骤:

案例:

  1. 在数据集中加上一列,对应额外特征变量 x0, 它的取值永远是 1

  2. 构建一个矩阵 X,这个矩阵基本包含了训练样本的所有特征变量

  3. 构建一个向量 y,包含所有的预测值

  4. 通过公式 θ=(XTX)1XTy, 得到使代价函数最小的 θ

一般情况:

梯度下降法和正规方程法对比:

梯度下降:

  • Need to choose α. 需要选择α
  • Needs many iterations 需要许多次迭代
  • Works well even when n is large. 当n非常大时依然运行良好

正规方程:

  • No need to choose α . 不想需要选择α
  • Don’t need to iterate. 不需要迭代
  • Need to compute (XTX)1 需要计算(XTX)1, 一般来说,实现逆矩阵计算的代价以
    矩阵维度的3次方增长
  • Slow if n is very large 如果n非常大会很慢

总结:

如果n比较小(X维度小于100000),使用正规方程法比较好;
如果n比较大(X维度大于100000),使用梯度下降法比较好

7. 正规方程和不可逆

如果XTX 不可逆?

Octave有两个函数来求解矩阵的逆,pinv(伪逆),inv(逆);其实使用pinv计算θ的值,无论是否可逆,算法都能正常运行

如果XTX 不可逆,通常有两种最常见的原因:

  • Redundant features (linearly dependent). 由于某些原因,学习的问题包含了多余的特征

    x1=sizeinfeet2

    x2=sizeinm2

    1m = 3.28feet

    x2=(3.28)2x1

    x1 和 x2 可删除其中一个

  • Too many features (e.g. m<=n). 在运行的学习算法有很多特征

    Delete some features, or use regularization. 删除一些特征或使用正则化的方法

    正则化方法:可以让我们使用很多特征,来配置很多参数,即使有一个相对较小的训练集

8. 做作业流程-作业提交系统

posted @   cloudinwind  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示