题目
线性回归模型训练的基本步骤
信息
- 类型:问答
- 难度:⭐
考点
模型训练流程,损失函数,梯度下降
快速回答
线性回归模型训练的核心步骤:
- 准备带标签的训练数据集
- 定义线性模型:$y = wx + b$
- 选择均方误差(MSE)作为损失函数
- 使用梯度下降优化参数
- 迭代更新直到收敛
原理说明
线性回归通过寻找最佳拟合直线来建立特征(X)与目标(y)之间的线性关系。训练过程最小化预测值与真实值之间的差距(损失函数),使用梯度下降迭代更新权重(w)和偏置(b)。
代码示例(Python)
# 示例数据集
X = np.array([1, 2, 3, 4])
y = np.array([2, 4, 5, 7])
# 初始化参数
w, b = 0.0, 0.0
lr = 0.01 # 学习率
# 训练循环
for epoch in range(100):
# 前向传播
y_pred = w * X + b
# 计算损失(MSE)
loss = np.mean((y_pred - y)**2)
# 梯度计算
dw = np.mean(2 * (y_pred - y) * X)
db = np.mean(2 * (y_pred - y))
# 参数更新
w -= lr * dw
b -= lr * db
# 每10轮打印进度
if epoch % 10 == 0:
print(f'Epoch {epoch}: loss={loss:.4f}, w={w:.3f}, b={b:.3f}')最佳实践
- 特征缩放:标准化特征加速收敛
- 学习率选择:常用0.01-0.1,过大导致震荡,过小收敛慢
- 收敛判断:当损失变化小于阈值时停止训练
- 向量化实现:使用矩阵运算提升效率
常见错误
- 未初始化参数(应随机初始化而非全零)
- 学习率过大导致发散(损失值爆炸增长)
- 忘记更新偏置项(b)
- 未打乱数据导致批次训练偏差
扩展知识
- 批量梯度下降 vs 随机梯度下降:前者用全量数据计算梯度更稳定,后者用单个样本更快
- 正则化:L1/L2正则防止过拟合
- 多项式回归:通过特征工程拟合非线性关系
- 评估指标:R-squared、MAE等评估模型性能