第一阶段-第7天 — 复习与综合练习 今日目标回顾本周学到的所有概念完成一个综合小练习查漏补缺巩固基础本周知识回顾核心概念清单概念一句话解释特征模型的输入数据标签模型要学习的正确答案权重w控制输入对输出的影响大小偏置b输入为0时的基础输出值预测模型根据当前参数给出的答案损失预测与真实值的差距均方误差预测误差平方的平均值梯度告诉参数该往哪个方向修改学习率每次修改参数的幅度训练不断修改参数让损失变小的过程完整训练流程图初始化w和b ↓ 对每组数据 1. 前向计算预测 w*x b 2. 计算损失MSE 平均(预测-真实)² 3. 计算梯度告诉w和b该怎么改 4. 更新参数w - 学习率*梯度_w b - 学习率*梯度_b ↓ 重复直到损失足够小 ↓ 用训练好的模型预测新数据今日练习综合练习从零训练一个工资预测模型# # 综合练习预测员工工资# # 第1步准备数据# 工作年限 → 月薪(千元)数据[(1,8),(2,10),(3,13),(5,18),(8,25),]输入[d[0]fordin数据]输出[d[1]fordin数据]# 第2步初始化参数w0.0b0.0学习率0.01轮次1000# 第3步训练print(开始训练...\n)forepochinrange(轮次):# 前向计算预测值[w*xbforxin输入]# 计算损失损失sum((p-t)**2forp,tinzip(预测值,输出))/len(输入)# 计算梯度nlen(输入)梯度_wsum(2*(p-t)*xforx,t,pinzip(输入,输出,预测值))/n 梯度_bsum(2*(p-t)forp,tinzip(预测值,输出))/n# 更新参数ww-学习率*梯度_w bb-学习率*梯度_b# 每200轮打印一次ifepoch%2000:print(f 轮次{epoch:4d}: 损失{损失:.4f}, w{w:.4f}, b{b:.4f})print(f\n训练完成!)print(f最终参数: w{w:.4f}, b{b:.4f})# 第4步验证print(\n验证预测:)forx,y_trueinzip(输入,输出):y_predw*xb 误差abs(y_pred-y_true)print(f 工作年限{x}年: 预测{y_pred:.2f}千, 真实{y_true}千, 误差{误差:.2f}千)# 第5步预测新员工print(\n预测新员工:)新员工年限[10,15,20]foryearsin新员工年限:预测工资w*yearsbprint(f 工作{years}年: 预测月薪{预测工资:.2f}千)练习2尝试不同的学习率数据[(1,8),(2,10),(3,13),(5,18),(8,25)]输入[d[0]fordin数据]输出[d[1]fordin数据]学习率列表[0.001,0.01,0.1,0.5]forlrin学习率列表:w,b0.0,0.0forepochinrange(500):预测值[w*xbforxin输入]nlen(输入)梯度_wsum(2*(p-t)*xforx,t,pinzip(输入,输出,预测值))/n 梯度_bsum(2*(p-t)forp,tinzip(预测值,输出))/n w-lr*梯度_w b-lr*梯度_b# 计算最终损失预测值[w*xbforxin输入]损失sum((p-t)**2forp,tinzip(预测值,输出))/len(输入)print(f学习率{lr:5.3f}: 最终损失{损失:.4f}, w{w:.4f}, b{b:.4f})自我检查回答以下问题能清晰回答才算掌握什么是特征和标签用自己的话解释。w和b分别控制什么画图说明。为什么用平方而不是绝对值举一个具体例子。梯度是什么用山坡比喻解释。学习率太大会有什么后果用一个数字例子说明。训练和推理有什么区别各举一个应用场景。验收标准综合练习能正常运行并输出正确结果能解释每一行代码的作用能回答所有自我检查问题尝试了不同学习率并观察了效果差异