单元三

第11课 均方误差与 R² 直观读

任务场景:预测偏了多少?用数字读懂好坏
任务场景:预测偏了多少?用数字读懂好坏
原理图:MSE 越小越好,R² 近 1 更好
原理图:MSE 越小越好,R² 近 1 更好

一、任务目标

对回归结果打印 MSE 与 R²,并会口头解释。

二、核心概念讲清楚

MSE 越小越好(平均平方误差);R² 越接近 1 越好(解释了多少波动)。指标要在测试集上计算;只在训练集上刷到很高分,容易掩盖过拟合。

  • mean_squared_error(y_true, y_pred)
  • r2_score(y_true, y_pred)
  • 指标要和问题匹配
1得到 y_pred测试集预测
2算 MSE看误差大小
3算 R²看拟合优度
4对照改进换特征/模型再比

三、跟着想一遍(小例子)

若真实 [3,5],预测 [2.5,5.5],可算出 MSE;R² 则看相对基线提升。

易错:只报训练集 R²=0.99,不报测试集。

正确:训练与测试指标一起看。

想一想:MSE 对大误差更敏感,为什么?(提示:平方。)

四、解题思路

任务:对回归结果打印 MSE 与 R²,并会口头解释。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「对回归结果打印 MSE 与 R²,并会口头解释。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用 print 把结果说出来,确认屏幕上出现预期内容。
  3. 3对照参考代码跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

任务:对回归结果打印…用print把结果说出来,…对照参考代码跑通后,只改一…

五、语句功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

回归预测连续数值;用误差(如 MSE)和拟合优度衡量好坏,并与手算对照。

先弄清本课输入与输出,再进编程练习对照现象。

七、编程练习

先理解上面的例子,再在下方 Mixly 运行与检查(含 scikit-learn)。

近乎完美直线时 R2≈1。

参考代码(对照抄写到下方 Mixly)
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

X = [[1], [2], [3], [4], [5], [6]]
y = [3, 5, 7, 9, 11, 13]  # 近似 y=2x+1
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=0
)
model = LinearRegression().fit(X_train, y_train)
y_pred = model.predict(X_test)
print("MSE(test):", round(mean_squared_error(y_test, y_pred), 4))
print("R2(test):", round(r2_score(y_test, y_pred), 4))

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:只抄参考代码,不看运行输出,也不改参数验证。

  2. 判断:先跑通,再对照「mean_squared_error(MSE)」改一处输入/参数,确认输出按预期变化;答错小测时读讲解。

  3. MSE 越小通常表示?

  4. R² 接近 1 通常表示?

九、本节小结

回归看 MSE(越小越好)和 R²(近 1 更好)。