单元三

第10课 LinearRegression 预测

任务场景:用一条直线预测分数或房价
任务场景:用一条直线预测分数或房价
原理图:线性回归拟合趋势线
原理图:线性回归拟合趋势线

一、任务目标

用学习时长预测分数,或用面积预测房价(小数据)。

二、核心概念讲清楚

线性回归拟合一条「最佳直线」:y ≈ ax+b(多特征时是超平面)。用 fit 学 a、b,用 predict 估新值。

  • LinearRegression
  • 适合趋势近似直线的关系
  • 现实常有噪声,不会完美落在线上
1准备数值 y连续标签
2划分数据训练/测试
3fit 直线学系数
4predict 新点得到估计值

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

若学习小时与分数近似直线,给出 3 小时可预测一个分数(不一定整数)。

易错:对明显弯曲的关系死套直线还不检查残差。

正确:先画散点看趋势,再决定是否线性回归。

想一想:为什么预测房价常用多个特征而不只一个?

四、解题思路

任务:用学习时长预测分数,或用面积预测房价(小数据)。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

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

  1. 1明确任务「用学习时长预测分数,或用面积预测房价(小数据)。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用 print 把结果说出来,确认屏幕上出现预期内容。
  3. 3找出重复动作,用 for / range 写成循环,少抄几遍。
  4. 4对照参考代码跑通后,只改一个参数,观察结果如何变化。

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

任务:用学习时长预测…用print把结果说出来,…找出重复动作,用for/r…对照参考代码跑通后,只改一…

五、语句功能讲解

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

六、知识点讲解

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

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

七、编程练习

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

改小时数再跑,看预测变化。

参考代码(对照抄写到下方 Mixly)
from sklearn.linear_model import LinearRegression

# 学习时长(小时) → 测验分数
X = [[1], [2], [3], [4], [5]]
y = [55, 60, 68, 72, 80]
model = LinearRegression()
model.fit(X, y)
for h in [2.5, 6]:
    print(h, "小时 →", round(model.predict([[h]])[0], 1), "分")

八、课堂练习

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

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

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

  3. LinearRegression.predict 输出通常是?

  4. 本课小例子的数据来源?

九、本节小结

线性回归用直线做数值预测。