73 0

[学科前沿] 【机器学习笔记 - 吴恩达】5-6 多变量线性回归 & 线性回归的实践技巧 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
50 点
帖子
4
精华
0
在线时间
0 小时
注册时间
2018-7-2
最后登录
2018-7-2

楼主
啊哈哈哈哈咯了 发表于 2025-11-24 12:40:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

5 多变量线性回归

5.1 多特征情况下的模型构建

此前我们主要研究的是单变量线性回归问题,现在将讨论扩展到包含多个输入特征的情形。在多变量场景中,使用 \( x_j \) 表示第 \( j \) 个特征,\( n \) 代表总的特征数量,而 \( m \) 则表示样本总数。对于第 \( i \) 个样本,其特征向量记为 \( \vec{x}^{(i)} \),其中第 \( j \) 个特征的具体取值为 \( x_j^{(i)} \)。 此时,模型中的参数 \( w \) 不再是单一数值,而是与输入特征维度一致的向量 \( \vec{w} \),偏置项 \( b \) 仍为标量。因此,预测函数可表示为: \[ f_{\vec{w}, b}(\vec{x}) = \vec{w} \cdot \vec{x} + b = \sum_{j=1}^n w_j x_j + b \] 该形式被称为多元线性回归模型。

5.2 向量化计算优化

为了提升代码执行效率,推荐采用向量化编程方式替代显式循环操作。以下是常用的 NumPy 函数(假设已导入 import numpy as np):
  • np.array():将 Python 列表或元组转换成 NumPy 数组(ndarray 类型)
  • np.zeros(shape):生成指定形状的全零数组
  • np.ones(shape):生成指定形状的全一数组
  • array.reshape(shape):返回重塑后的新数组,不改变原数组结构
  • array.flatten():将多维数组展平为一维数组
  • np.dot(a, b)a @ b:用于矩阵乘法或向量点积运算
  • +, -, *, /:支持数组间的逐元素加减乘除运算
  • np.sqrt(a):计算数组每个元素的平方根
  • np.exp(a):对数组每个元素求自然指数 \( e^x \)
  • np.log(a):计算数组每个元素的自然对数
  • np.sum(a, axis=None):沿指定轴或全部元素求和
  • np.mean(a, axis=None):沿指定轴或整体计算均值
  • np.min(a, axis=None):获取最小值
  • np.max(a, axis=None):获取最大值
  • np.std(a, axis=None):计算标准差
通过合理运用这些函数,可以显著加快数据处理速度。

5.3 多元回归中的梯度下降法

多变量情形下的梯度下降算法原理与单变量类似,核心思想依然是沿着成本函数梯度方向逐步调整参数以逼近最优解。 利用向量化技术,能够实现并行化计算,从而大幅提升训练效率。除了迭代式的梯度下降方法外,还存在一种直接求解参数的方法——正规方程(Normal Equation)。 正规方程简介: 这是一种解析解法,通过矩阵运算一步得出使成本函数(通常基于最小二乘准则)达到最小的参数 \( \theta \)。其基本思路是令损失函数关于各参数的偏导数为零,进而解出最优参数组合。 实际应用中,通常借助高级线性代数库来完成求解过程。 优点: 无需迭代,求解迅速。 缺点: 涉及矩阵求逆操作,当特征数量 \( n \) 极大时,计算复杂度高且内存消耗大;此外,此方法仅适用于线性回归,难以推广至逻辑回归、神经网络等更复杂的模型。

6 线性回归实践建议

6.1 特征缩放(Feature Scaling)

不同特征的数值范围可能存在较大差异,分布也不均衡,这会影响梯度下降的收敛速度和稳定性。因此,在进行优化前应先进行特征缩放。常见的三种方法如下:
  1. Min-max 归一化:
    将特征值映射到 [0,1] 区间: \[ x_{i\_scaled} = \frac{x_i}{x_{max}} \]
  2. 均值归一化(Mean Normalization):
    首先计算特征平均值: \[ \mu_i = \text{mean}(x_i) \] 然后进行标准化: \[ x_{i\_scaled} = \frac{x_i - \mu_i}{x_{max} - x_{min}} \]
  3. Z-score 标准化(标准分数):
    在均值基础上进一步考虑标准差: \[ \sigma_i = \sqrt{\frac{1}{N}\sum_{j=1}^{N} (x_i^{(j)} - \mu_i)^2} \] 得到: \[ x_{i\_scaled} = \frac{x_i - \mu_i}{\sigma_i} \]
提示: 特征缩放的目标通常是让所有特征大致落在 [-1, 1] 范围内,并尽可能保持正负值混合,有助于加速梯度下降的收敛。

6.2 如何判断梯度下降是否收敛

在训练过程中,可通过监控成本函数随迭代次数的变化趋势来评估是否趋于收敛。若连续若干次迭代后成本函数变化极小,或曲线趋于平稳,则可认为算法已接近最优解。也可设定一个阈值,当相邻两次迭代的成本差小于该值时停止训练。

在优化算法过程中,可以通过绘制曲线图来观察模型的收敛情况。将成本函数作为纵轴,迭代次数作为横轴进行绘图。

此外,也可以设定一个极小的阈值 Epsilon(ε),当某次迭代中成本函数的下降幅度小于或等于该值时,即可判定算法已经收敛。

6.3 选择合适的学习率

为了找到最优学习率,可以绘制不同学习率下的成本函数变化曲线。尝试使用不同的学习率数值,如 0.001、0.01 和 0.1 等,观察其对收敛速度和稳定性的影响。

随后可进一步细化调整,采用更小的步长间隔,例如尝试 0.003、0.03 等值,并比较不同设置下曲线的变化趋势,从而判断哪个学习率更为合适。

6.5 多项式回归(Polynomial Regression)

多项式回归能够拟合非线性关系,适用于数据呈现曲线分布的情况。其实现方式是基于原始特征构造新的特征,这些新特征通常是原始特征的高次幂形式,比如平方项、立方项,或是算术平方根等非线性变换。

6.4 特征工程(Feature Engineering)

特征工程依赖于对问题的理解与经验直觉,通过从已有特征出发,进行转换或组合,生成更具表达能力的新特征。例如,若原始输入包含“长度”和“宽度”,则可根据实际意义构造“面积 = 长 × 宽”作为一个新的特征,以提升模型的表现力。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:线性回归 学习笔记 机器学习 多变量 习笔记
相关内容:机器学习学习笔记

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-24 20:37