# 《让人工智能认动作》中学信息科技实验课 · 教师包

> **一句话**：两节课，让学生亲手把一堆手机传感器数据变成会认动作的 AI，
> **不写代码、不用注册、断网也能上**。
>
> 适用：初中 8–9 年级 / 高中信息技术｜对应「人工智能初步」相关内容
> 课时：**2 课时 × 40–45 分钟**（第 1 课时**自成闭环**，只给一节课也能上）
> 配套数据：`har-junior.csv`（随包提供，来源与许可见 `LICENSE-and-source.txt`）

---

## 0. 给老师的两分钟

**先说清楚为什么这门课好上：**

| 平时上 AI 课的常见麻烦 | 这节课 |
|---|---|
| 要装 Python、配环境，一节课就没了 | 装一个 Windows 程序，双击即用 |
| 机房不通外网，在线平台打不开 | **全程离线**，断网照跑 |
| 学生没有手机号，注册不了账号 | **完全不需要注册** |
| 免费额度用完就上不了 | 本地训练**不收费**，随便跑 |
| 数据来自网上，学生没感觉 | 数据是**真人做动作时手机录的** |

**这门课真正想留下的东西**：不是"会用某个软件"，而是——
> **电脑说"准确率 90%"，你要先问一句：这个 90% 是怎么算出来的？**

（下一节会讲怎么用中学生听得懂的话把这句讲明白。）

---

## 1. 教学目标

| # | 目标 | 怎么知道达成了 |
|---|---|---|
| 1 | 说得出"训练"是什么：**给一堆例子，让电脑自己找规律** | 学生能用自己的话解释，不是背定义 |
| 2 | 亲手完成一次训练，得到结果 | 屏幕上出现准确率和最佳模型名 |
| 3 | 知道模型**会认错**，并猜得出它最容易认错哪两个 | 能说出理由（"上楼和下楼看起来差不多"） |
| 4 | ⭐ 理解**"考高分"不等于"真会"** | 能回答"为什么换个人来走，它可能就不认识了" |

---

## 2. 课前准备（约 15 分钟）

- [ ] 在**一台**机房电脑上装好 Kvaxir（https://kvaxir.com/download.html）
- [ ] ⚠️ **先确认机房有没有装软件的权限**——如果没有管理员权限，找网管提前装
- [ ] 把 `har-junior.csv` 拷到每台机器（**只有 0.12 MB，一个 U 盘搞定**）
  - 也可从 https://kvaxir.com/teachers.html 下载
- [ ] **自己完整跑一遍并掐表**（见下方折算表）
- [ ] 学生**不需要注册账号**，不要让他们注册

### ⚠️ 上课前必做：掐表折算

本包的实测数字来自 **14 核 Intel Core Ultra 5 225H / 18GB** 的机器。
机房电脑通常更旧，**耗时大约是下表的 1.5–3 倍**。

| 步骤 | 本包实测（14 核） | 老旧机房的大致预期 |
|---|---|---|
| 速度优先档训练 | **约 48 秒** | 约 1.5–2.5 分钟 |
| 重复相同配置训练 | **秒级**（命中缓存） | 秒级 |

> **好消息**：中学版只有 22 个特征、480 行数据，比大学版轻得多。
> 即使机房机器较旧，也基本能在 3 分钟内跑完，不影响课堂节奏。

---

## 3. 第 1 课时（40–45 分钟）：让电脑自己学会认动作

### ⏱ 0–5 分钟｜提问开场

**不要**先讲"人工智能""机器学习"这些词。先问：

> 你手机里有个东西能数你走了多少步。它怎么知道你在走？
> 它看得见你吗？

让学生说（答案通常是"晃动了""有感应器"）。然后：

> 手机里有个很小的传感器，能感觉到**晃动**和**转动**。
> 但传感器只会输出一串数字，它自己不知道这叫"走路"。
> **今天我们就来教电脑：看到什么样的数字，就是"走路"。**

### ⏱ 5–15 分钟｜认识数据

1. 打开 Kvaxir，新建项目，导入 `har-junior.csv`
2. 让学生自己找，然后提问：
   - 有多少行？→ **480 行**
   - 有多少列？→ **23 列**
   - 哪一列是"答案"？→ **`标签`列**
   - 标签有几种？分别是什么？→ **6 种：走路、上楼、下楼、站着、坐着、躺着**
3. **读一读列名**（这是中学版特意设计的地方，让几个学生念出来）：
   - `身体加速度_上下_波动` —— 上下晃得厉害不厉害
   - `重力方向_前后_平均` —— 手机是往前倾还是往后倾
   - `转身速度_左右_波动` —— 转身转得急不急
   - `动的总幅度_平均` —— 总共动了多大
4. 点一下：**这 22 列数字，就是一个人做动作时手机记下来的"样子"。**

> **小知识**：这些数据来自 30 个人，腰上别着手机做这 6 个动作，
> 全程录像，然后人工标上"这一段是走路"。所以叫"**监督**学习"——
> 有老师（人）先告诉它答案。

### ⏱ 15–20 分钟｜讲清楚"训练"是什么

**用学生能懂的话**（这句很关键，别跳）：

> 你想教一个从没见过猫的小孩认猫。你不会讲道理，你会**指着一只只猫说"这是猫"**。
> 指了几百次，他自己就总结出规律了。
>
> 训练也是一样：我们给电脑 480 个例子，每个例子都标好了答案，
> **让它自己去找规律**。找完规律，它就能对没见过的新例子做判断。

### ⏱ 20–32 分钟｜第一次训练

1. 选目标列 = `标签`
2. 档位选 **「速度优先」**
3. 点「开始训练」

**预期结果（本包实测）**

| 项 | 值 |
|---|---|
| 耗时 | 约 **48 秒**（机房旧机器约 1.5–2.5 分钟） |
| 最佳模型 | LightGBMXT |
| **准确率** | **约 90.6%** |

**趁训练的时候讲**：屏幕上会一行行出现它在试不同的模型。
可以问学生："为什么要试好几种？"——
> 因为**没有一种方法对所有问题都最好**。所以让它多试几种，挑表现最好的那个。

### ⏱ 32–40 分钟｜看结果，留悬念

- 让学生记下三个数：**耗时、最佳模型名、准确率**
- 提问：**90.6% 是什么意思？**
  - 引导到："100 次里它对 90 次，错 10 次"
- **留悬念**（下课前的钩子）：
  > 它错了 10 次。那你猜猜——**这 10 次里，它最容易把哪两个动作搞混？**
  > 下节课我们来看。

### ⏱ 40–45 分钟｜（可选）自主探索

让学生自己点开图谱看看，或者改个档位再训一次，观察有什么不同。

---

## 4. 第 2 课时（40–45 分钟）：它为什么会认错

### ⏱ 0–8 分钟｜回顾 + 找错误

1. 回顾上节的三个数
2. 让学生**先猜**哪两个动作最容易混（写在纸上或举手）
3. 揭晓（通常的答案是 **上楼 / 下楼**）：
   > 为什么不奇怪？因为**上楼和下楼，手机感觉到的晃动几乎是一样的**——
   > 都是走路的节奏，只是方向反了一点。
   > 人靠眼睛和膝盖能分清，但手机只有一个传感器。

> ⚠️ 如果你的课堂上模型混的是别的两个（比如坐着/站着），
> **那就讲那两个**——重点是"为什么会混"，不是具体是哪两个。
> 坐着和站着也很有讲头：**它们几乎不动，差别只在手机倾斜角度。**

### ⏱ 8–18 分钟｜讨论：模型的"错"是有道理的

抛三个问题，让学生讨论：

1. **模型犯的错，是随机的吗？**（不是，它总是错在"长得像"的两类上）
2. **如果让模型只判断"走路 / 站着"两种，准确率会不会更高？**（会——任务简单了）
3. **如果让你再多加一列数据来帮它，你会加什么？**
   （好答案：加"高度变化"就能分清上楼下楼；加"摄像头"当然也行）

### ⏱ 18–32 分钟｜⭐ 最重要的一段：考高分 ≠ 真会

**用这个类比**（中学生一听就懂）：

> 假设考试前，你**已经看过考卷和答案**了。你考了 90 分。
> 那你能说你学会了吗？不能。换一张卷子你可能就不及格了。

然后告诉他们一个事实：

> 我们刚才那 480 条数据，是从 **30 个人**身上录的。
> 然后我们**随机**把它分成两部分：一部分给电脑"练习"，一部分用来"考试"。
>
> 问题是：**同一个人的动作，可能既在练习里，也在考试里。**
> 也就是说——**电脑可能见过这个人的走路姿势。**

**所以**：

> 那个 90.6%，是"考试题它见过类似的人"的分数。
> 如果换一个**它从来没见过的人**来走，分数会掉下来。
>
> 这不是这个软件的毛病，**这是所有 AI 都会遇到的事**。
> 所以以后你听到任何一个"准确率 95%"，都可以问一句：
> **这是在什么数据上算出来的？**

**（可选，如果学生接受得快）**：点开图谱，让他们看看"练习"和"考试"分别是什么。

### ⏱ 32–40 分钟｜收束 + 作业

**收束成一句**（让学生记在书上）：

> **电脑说自己很准，要先问问它是在哪儿考的试。**

**作业**（二选一，都不需要电脑）：
- 用 200 字说说：为什么"考了 90 分"不一定代表"学会了"？举一个生活中的例子。
- 想一想：如果要做一个"识别你同桌在干什么"的 AI，你会收集什么数据？为什么？

---

## 5. 机房常见卡点

| 现象 | 原因 | 怎么办 |
|---|---|---|
| 装不上软件 | 没有管理员权限 | **提前找网管装**，别等上课 |
| 找不到 CSV | 文件没拷到机器 | U 盘/局域网分发；只有 0.12 MB，很快 |
| 训练卡住不动 | 老机器核数少 | 耐心等；或老师一台机器投屏演示，学生看 |
| 学生想注册账号 | 以为必须注册 | 说明：**训练不用账号、不用联网** |
| 结果和手册不完全一样 | 机器不同 | 正常，差 1–2 个百分点无妨；**重点是对比和讨论** |
| 学生乱点导致界面乱了 | 正常的探索 | 关掉重进即可，不会损坏任何东西 |

---

## 6. 可选加分环节（5 分钟，效果很好）

**让学生自己证明"它真的没联网"：**

1. 打开 Windows「资源监视器」→「网络」标签
2. 保持窗口可见，点「开始训练」
3. 观察：**整个训练期间没有任何网络流量**

> 这比老师说十遍"它是本地的"都有用。如果学校对数据安全有要求，
> 这个环节尤其值得做——**学生的数据确实一步都没离开这台电脑**。

---

## 7. 教师支持（免费）

- **免费完整权限账号**：导出模型不带水印，与付费用户同权，**一学期有效可续**
  - 用**学校邮箱**发信到 `elonfortec@163.com`，注明学校、所教科目与年级
  - 然后在 Kvaxir 里正常注册一个账号，把注册邮箱告诉我们，**人工开通**（1–2 个工作日）
- **本地训练本来就免费**，不需要账号也能上课——完整权限主要是给去水印的
- 说明页：https://kvaxir.com/teachers.html

---

## 8. 数据来源与许可（必须保留）

数据为 **UCI HAR** 数据集的分层抽样子集，许可 **CC BY 4.0**
（允许为任何目的共享和改编，条件是在使用时保留署名）。

本中学版从原始 561 个特征中选取了 **22 个可用日常语言解释的列**，
并把列名与活动名译为中文；**数值未做任何改动**。

> Reyes-Ortiz, J., Anguita, D., Ghio, A., Oneto, L., & Parra, X. (2013).
> Human Activity Recognition Using Smartphones [Dataset].
> UCI Machine Learning Repository. https://doi.org/10.24432/C5S4K

完整署名见随包 `LICENSE-and-source.txt`。**分发本包时请一并保留该文件。**

---

## 9. 实测数字说明（可复现）

- 测量机器：**14 核 Intel Core Ultra 5 225H / 18 GB 内存 / Windows**
- 数据：`har-junior.csv`，480 行 × 23 列（6 类各 80 行，抽样种子固定为 42）
- 速度优先档：**实测 48.4 秒 · 准确率 90.6% · 最佳模型 LightGBMXT**
- ⚠️ 顺带一个值得注意的事实：本数据上「均衡」档实测 **98.3 秒、准确率 89.4%**——
  **比速度优先更慢，而且没有更准**。
  所以中学版**不建议**做"两档对比"（大学版那个"更准但模型大 22 倍"的结论在这里不成立）。
  这本身也可以是一个讨论点：**花更多时间，不一定换来更好的结果。**
