4.多变量线性回归
1. 多元线性回归
1. 单变量线性回归
假设函数:
2. 多元线性回归
记号:
= number of features 表示特征的数量
= input (features) of training example.表示第i个样本的输入特征(特征向量), 比如 x(2) 表示第二个训练样本的特征向量;
在这种记法中,上标2是训练集的一个索引,对应着表格中的第二行,即第二个训练样本, 此时x(2)是一个四维向量
= value of feature in training example. 表示第i个训练样本中第j个特征量的值
假设函数:

2. 梯度下降应用于多元线性回归
只有一个特征值的情况:
Repeat until convergence {
}
(simultaneously update)
多个特征值的情况:
Repeat until convergence {
}
(simultaneously update for )
例如:两个或更多个特征值
3. 梯度下降的实用技巧-特征缩放
假设有一个机器学习问题,这个问题有多个特征,如果能够确保这些特征都处在一个相近的范围,
即确保不同特征的取值在相近的范围内,这样梯度下降法就能很快地收敛
案例:
= size (0-2000 )
= number of bedrooms (1-5)
暂时忽略θ0,如果x1的取值范围远远大于x2的取值范围的话,最终画出来的代价函数J(θ)的等高线会又瘦又高

如果在这种代价函数上运行梯度下降的话,梯度可能会花费很长一段时间并且可能来回波动,然后会经过很长
时间最终才收敛到最小值
在这种情况下,一种有效的方法是进行特征缩放
1. 特征缩放的方法1:除以特征的最大值
=
=
此时代价函数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
-
构建一个矩阵 X,这个矩阵基本包含了训练样本的所有特征变量
-
构建一个向量 y,包含所有的预测值
-
通过公式 , 得到使代价函数最小的
一般情况:

梯度下降法和正规方程法对比:
梯度下降:
- Need to choose α. 需要选择α
- Needs many iterations 需要许多次迭代
- Works well even when is large. 当n非常大时依然运行良好
正规方程:
- No need to choose α . 不想需要选择α
- Don’t need to iterate. 不需要迭代
- Need to compute 需要计算, 一般来说,实现逆矩阵计算的代价以
矩阵维度的3次方增长 - Slow if is very large 如果n非常大会很慢
总结:
如果n比较小(X维度小于100000),使用正规方程法比较好;
如果n比较大(X维度大于100000),使用梯度下降法比较好
7. 正规方程和不可逆
如果 不可逆?
Octave有两个函数来求解矩阵的逆,pinv(伪逆),inv(逆);其实使用pinv计算θ的值,无论是否可逆,算法都能正常运行
如果 不可逆,通常有两种最常见的原因:
-
Redundant features (linearly dependent). 由于某些原因,学习的问题包含了多余的特征
1m = 3.28feet
x1 和 x2 可删除其中一个
-
Too many features (e.g. m<=n). 在运行的学习算法有很多特征
Delete some features, or use regularization. 删除一些特征或使用正则化的方法
正则化方法:可以让我们使用很多特征,来配置很多参数,即使有一个相对较小的训练集
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏