201:线性函数与机器学习
📌 一、 课程导入(5分钟)
展示一张图:
在黑板上或PPT上画一个坐标轴,标出几个点,画一条直线穿过它们。
提问:
- “这条线,如果要用一个式子表示,应该怎么写?”
- “你们初中学过 ——
y = kx + b,对不对?”
引出本节课目标:
今天我们不考试、不解题。只做三件事:
- 认 —— 看到
y = kx + b能叫出名字。- 读 —— 看到
Σ知道它叫“西格玛”,意思是“求和”。- 对 —— 知道这些符号在代码里长什么样。
- 👨🏫 教师活动:
- 画一条斜向上的直线,标出
y = 2x + 1。 - 指着问:“这条线是往上走还是往下走?”
- 引导回答:“往上走,因为 k=2 是正数。”
- 画一条斜向上的直线,标出
- 🧑🎓 学生活动:
- 在纸上画一个坐标轴,标出 k=3 和 k=-2 的两条线的大致走向。
- 口头回答:“k 是正数→直线向上,k 是负数→直线向下。”
用“认图→认符号→认代码”的顺序,从学生最熟悉的初中数学入手,建立安全感。
📖 二、 核心概念(一):线性函数 y = kx + b
1. 标准形式与读法
| 符号 | 读法 | 含义 | 生活类比 |
|---|---|---|---|
y |
读作“y” | 因变量(结果) | 你最终得到的东西 |
x |
读作“x” | 自变量(输入) | 你放进去的东西 |
k |
读作“k” | 斜率:直线的倾斜程度 | 每走一步,上升多少 |
b |
读作“b” | 截距:直线与y轴的交点 | 起点的位置 |
2. 斜率 k 决定方向
| k 的值 | 直线方向 | 图形 |
|---|---|---|
| k > 0(正数) | 向右上倾斜 | / |
| k < 0(负数) | 向右下倾斜 | \ |
| k = 0 | 水平直线 | — |
3. 在机器学习中在哪里见到它?
| 场景 | 公式 | 说明 |
|---|---|---|
| 线性回归 | y_pred = w·x + b |
和 y = kx + b 完全一样,只是把 k 换成了 w(权重) |
| 逻辑回归的决策边界 | z = w₁x₁ + w₂x₂ + b |
多维版本的线性函数 |
| SVM 的决策边界 | w·x + b = 0 |
同上 |
🧠 核心认知:机器学习中的“线性模型”,本质上就是初中数学里的
y = kx + b,只是特征变多了,变成y = w₁x₁ + w₂x₂ + ... + b。
4. 代码对照
- 👨🏫 教师活动:
- 指着代码中的
2 * x + 1,问:“这里的 2 对应公式里的什么?1 对应什么?” - 引导回答:“2 是 k(斜率),1 是 b(截距)。”
- 指着代码中的
- 🧑🎓 学生活动:
- 修改代码中的 2 为 -3,观察图形变化。
- 口头描述:“k=-3 时,直线变成向下了。”
将数学公式和 Python 代码并排展示,让学生看到“公式不是天书,就是代码里的那行算式”。
📖 三、 核心概念(二):多项式函数 y = ax² + bx + c
1. 标准形式与读法
| 符号 | 读法 | 含义 |
|---|---|---|
a |
读作“a” | 二次项系数,决定抛物线开口方向 |
b |
读作“b” | 一次项系数 |
c |
读作“c” | 常数项(截距) |
x² |
读作“x的平方” | x 乘以 x |
2. 图像特征
| a 的值 | 抛物线开口 | 图形 |
|---|---|---|
| a > 0(正数) | 开口向上 | ∪(像碗) |
| a < 0(负数) | 开口向下 | ∩(像山) |
3. 在机器学习中在哪里见到它?
| 场景 | 公式 | 说明 |
|---|---|---|
| 多项式回归 | y = w₁x + w₂x² + ... + b |
用曲线拟合数据 |
| 损失函数(MSE) | Loss = (y_pred - y_true)² |
平方项在里面 |
| 激活函数(如ReLU的变体) | 部分非线性函数 | 非线性的来源 |
🧠 核心认知:多项式函数是“线性函数的升级版”——加了平方项,直线变曲线。
4. 代码对照
- 👨🏫 教师活动:
- 在坐标轴上画一个开口向上的抛物线,标出
a > 0。 - 再画一个开口向下的,标出
a < 0。 - 提问:“如果 a=0,这条线会变成什么?”(答案:变成直线
y = bx + c)
- 在坐标轴上画一个开口向上的抛物线,标出
- 🧑🎓 学生活动:
- 修改代码中 0.5 为 -0.5,观察抛物线翻转。
- 口头描述:“a 是正数,碗朝上;a 是负数,山朝下。”
通过“a 的正负决定朝向”这一单一规则,降低多项式函数的认知门槛。不求会算,只求能看懂图形和符号的对应关系。
📖 四、 核心概念(三):求和符号 Σ
1. 符号读法
| 符号 | 读法 | 含义 |
|---|---|---|
Σ |
读作“西格玛”(Sigma) | 求和(把一堆数加起来) |
2. 标准写法
$$\sum_{i=1}^{n} x_i$$| 部分 | 含义 |
|---|---|
Σ |
告诉我“要开始求和了” |
i=1 |
从 i=1 开始 |
n |
加到 i=n 为止 |
x_i |
对每个 x_i 做操作(这里是直接加起来) |
3. 展开后的样子
$$\sum_{i=1}^{5} x_i = x_1 + x_2 + x_3 + x_4 + x_5$$🧠 核心认知:
Σ就是一个“循环”的缩写——用 Python 的for循环可以代替。
4. 代码对照
5. 在机器学习中在哪里见到它?
| 场景 | 公式 | 说明 |
|---|---|---|
| 均值 | μ = (1/n) · Σᵢ xᵢ |
所有数加起来除以 n |
| 方差 | σ² = (1/n) · Σᵢ (xᵢ - μ)² |
每个数与均值的差的平方,加起来,再平均 |
| 损失函数(MSE) | MSE = (1/n) · Σᵢ (y_predᵢ - y_trueᵢ)² |
预测误差的平方,加起来,再平均 |
- 👨🏫 教师活动:
- 在黑板上写
Σᵢ xᵢ = x₁ + x₂ + x₃ + ...,让学生跟着读一遍。 - 提问:“如果 n=10,这个式子展开后有几个数相加?”(答案:10个)
- 在黑板上写
- 🧑🎓 学生活动:
- 用 Python 计算
sum([3, 5, 7, 9]),验证求和结果。 - 口头复述:“Σ 就是 for 循环加法的缩写。”
- 用 Python 计算
将 Σ 和 Python 的 sum() 函数直接对照,让学生看到“数学符号就是代码的缩写”。
📝 五、 课堂小结(5分钟)
| 你看到的公式 | 读法 | 在代码里长什么样 |
|---|---|---|
y = kx + b |
“y等于k乘以x加b” | y = k * x + b |
y = ax² + bx + c |
“y等于a乘以x的平方加b乘以x加c” | y = a * x**2 + b * x + c |
Σᵢ xᵢ |
“西格玛 i 从1到n,x i” | sum(x) 或 np.sum(x) |
✏️ 随堂练习(指认题,不计算)
- 看到
y = -3x + 5,回答:k=,b=,直线向____倾斜。 - 看到
y = 2x² - 4x + 1,回答:a=,抛物线开口向。 - 看到
Σᵢ xᵢ,回答:这个符号叫什么?意思是____。
📋 板书设计
本课用到的单词
| 符号 | 读法 | 中文名称 |
|---|---|---|
y = kx + b |
“y等于k乘以x加b” | 线性函数 |
k |
“k” | 斜率 |
b |
“b” | 截距 |
y = ax² + bx + c |
“y等于a乘以x的平方加b乘以x加c” | 二次函数 |
Σ |
“西格玛” | 求和符号 |
xᵢ |
“x下标i” | 第 i 个 x |