今日目标理解平均值的计算理解平方的含义掌握直线方程 y wx b能在纸上画出不同w和b对应的直线学习内容1. 平均值平均值的公式平均值 所有数之和 ÷ 数的个数Python实现数据[1,3,5,7,9]总和0forxin数据:总和x 平均值总和/len(数据)print(平均值)# 输出 5.0更简洁的写法数据[1,3,5,7,9]平均值sum(数据)/len(数据)print(平均值)# 输出 5.02. 平方平方的含义一个数乘以它自己。x5平方x*xprint(平方)# 输出 25为什么模型训练要用平方假设真实值是5模型预测值是3误差是2。如果用绝对值|3 - 5| 2如果用平方(3 - 5)² (-2)² 4平方的好处负数变正数不会抵消大误差惩罚更重误差越大平方后差距越大求导方便举例对比误差绝对值平方1112243391010100可以看到平方对大误差的惩罚明显更重。3. 直线方程 y wx b这是所有线性模型的根基。w权重/斜率x每增加1y增加多少b偏置/截距当x0时y的值示例def直线方程(x,w,b):计算直线上的点returnw*xb# w2, b1 时forxinrange(5):y直线方程(x,2,1)print(fx{x}, y{y})输出x0, y1 x1, y3 x2, y5 x3, y7 x4, y94. 可视化理解w和b的作用importmatplotlib.pyplotasplt x_values[0,1,2,3,4,5]# 不同的wplt.figure(figsize(12,5))plt.subplot(1,2,1)forwin[0.5,1,2,3]:y[w*xforxinx_values]plt.plot(x_values,y,labelfw{w}, b0)plt.xlabel(x)plt.ylabel(y)plt.title(不同w的效果b0)plt.legend()plt.grid(True)# 不同的bplt.subplot(1,2,2)forbin[-2,0,2,4]:y[1*xbforxinx_values]plt.plot(x_values,y,labelfw1, b{b})plt.xlabel(x)plt.ylabel(y)plt.title(不同b的效果w1)plt.legend()plt.grid(True)plt.tight_layout()plt.savefig(/tmp/w_b_visualization.png)print(图表已保存到 /tmp/w_b_visualization.png)今日练习练习1计算平均值scores[85,92,78,95,88]# 方法1手动计算total0forsinscores:totals avg1total/len(scores)# 方法2用sum函数avg2sum(scores)/len(scores)print(f平均分{avg1})print(f验证{avg2})练习2计算均方误差真实值[1,3,5,7,9]预测值[1.5,2.8,5.2,6.9,9.5]# 计算每个预测的误差平方误差平方列表[]for真实,预测inzip(真实值,预测值):误差预测-真实 误差平方误差**2误差平方列表.append(误差平方)print(f真实{真实}, 预测{预测}, 误差{误差:.2f}, 误差平方{误差平方:.2f})# 计算均方误差msesum(误差平方列表)/len(误差平方列表)print(f\n均方误差(MSE){mse:.4f})练习3画直线# 在纸上或代码中画出以下三条直线观察它们的区别# 1. y 0*x 1 水平线# 2. y 1*x 0 45度斜线# 3. y 2*x 1 更陡的斜线forw,bin[(0,1),(1,0),(2,1)]:print(f\nw{w}, b{b}时)forxinrange(5):yw*xbprint(f x{x}, y{y})验收标准能手动计算一组数据的平均值能解释为什么用平方而不是绝对值能说出w和b分别控制直线的什么特性给定w和b能计算出对应直线上任意点的坐标下节课预告下节课将学习数据准备如何组织训练数据、特征与标签的概念。