机器学习小组练习作业设计方案
——线性回归 · 逻辑回归 · 朴素贝叶斯
配套网站:机器学习小组练习作业网站.html(单文件,双击即可离线打开,自动判分与成绩统计)
适用课程:《机器学习基础》《人工智能导论》《Python 数据分析》等
作业形式:线上个人测验(网站自动判分)+ 小组实践任务 + 教师线下评定
建议安排:课内 2 课时 + 课后 1 周
一、作业基本信息
| 项目 | 内容 |
|---|---|
| 作业主题 | 经典监督学习三模型:线性回归(回归)、逻辑回归(分类)、朴素贝叶斯(概率分类) |
| 组织形式 | 固定 8 支队伍(第1队~第8队);每队首位登录者自动成为队长并维护本队名单;线上部分个人独立完成,实践部分小组协作完成 |
| 工具环境 | 作业网站(任意现代浏览器)+ Python 3.x + scikit-learn |
| 成绩构成 | 线上测验(自动)+ 小组实践(教师评)+ 个人协作(教师评),总评 100 分 |
| 数据保存 | 本地版:浏览器 localStorage;公网版:学生成绩通过「成绩回执码」回传给教师汇总(详见第六节第 5 条) |
二、教学目标
- 知识目标:掌握三大模型的核心公式与思想——
- 线性回归:模型 ŷ = wx + b、最小二乘目标 L(w,b) = (1/n)Σ(yᵢ − ŷᵢ)²、梯度下降更新、决定系数 R²;
- 逻辑回归:Sigmoid 函数 σ(z) = 1/(1 + e⁻ᶻ)、阈值判决、交叉熵损失、线性决策边界;
- 朴素贝叶斯:贝叶斯公式 P(Y|X) = P(X|Y)P(Y)/P(X)、"朴素"= 特征条件独立假设、拉普拉斯平滑。
- 能力目标:能用 scikit-learn 完成数据读取 → 建模 → 预测 → 评估(MSE/R²、准确率/混淆矩阵、Precision/Recall)的完整流程。
- 素养目标:小组分工协作、结果解读与答辩表达。
三、分组与分工
- 全班固定分为 8 支队伍(第1队~第8队),由系统预置,无需教师建组;
- 队长机制:每队第一位登录的同学自动成为队长(系统二次确认),队长负责在「登录 / 我的队伍」页录入本队队员姓名,并可移出队员;
- 队员:必须使用队长录入的姓名登录;名单外的姓名会被拒绝,需联系队长添加;
- 建议每队 4~6 人,队内可参考以下角色分工(可兼任):
| 角色 | 职责 | 产出 |
|---|---|---|
| 队长 | 建名单、统筹进度、确认实践任务提交、对接教师 | 名单、进度记录、任务提交确认 |
| 数据工程 | 数据获取、清洗、划分 | 数据集与预处理脚本 |
| 建模工程师 | 三个模型的训练与调参 | model_a/b/c 代码 |
| 测评工程师 | 指标计算、结果验证 | 评估报告(指标表) |
| 报告撰写 | 公式推导简述与实验报告 | 小组报告(PDF/Word) |
| 答辩人 | 10 分钟汇报与答疑 | 答辩 PPT |
四、作业内容设计
4.1 线上个人测验(网站自动判分,每人必做)
- 结构:三个模块各 5 题(4 道单选 + 1 道计算填空),每题 20 分;
- 满分:每模块 100 分,三模块合计 300 分;
- 流程:打开网站 → 进入「登录」→ 选择队伍 + 输入姓名(每队首位登录者即队长)→ 队长录入本队名单 → 队员登录 → 逐模块作答 → 提交后立即判分并解锁该模块的参考答案与代码;
- 答案隐藏规则:答题页面不包含任何答案、解析或代码;只有提交后,结果页才生成一个默认折叠的「🔓 查看参考答案与代码」面板(每题含正确答案、解析、Python/scikit-learn 参考代码);未提交的模块无法查看;
- 成绩回执:三模块完成后,学生在结果页点「复制回执码」把回执发给教师;教师在「成绩统计 → 导入学生成绩回执」中粘贴导入,即可汇总全班成绩(详见第六节第 6 条)。
题目考点对照表:
| 模块 | 题号 | 考点 | 题型 |
|---|---|---|---|
| 线性回归 | A1 | 模型 ŷ = wx + b 中参数含义(斜率/截距) | 单选 |
| A2 | 最小二乘目标:最小化残差平方和 Σ(yᵢ − ŷᵢ)² | 单选 | |
| A3 | 代入计算:ŷ = 2x + 1,x = 5 求预测值 | 填空 | |
| A4 | 决定系数 R² 的含义(越接近 1 拟合越好) | 单选 | |
| A5 | 学习率 α 过大导致震荡/发散 | 单选 | |
| 逻辑回归 | B1 | Sigmoid 函数表达式 | 单选 |
| B2 | 计算 σ(0) = 0.5 | 填空 | |
| B3 | 与线性回归本质区别:分类 vs 回归 | 单选 | |
| B4 | 二分类常用交叉熵损失 | 单选 | |
| B5 | 概率 0.8 与阈值 0.5 的判决 | 单选 | |
| 朴素贝叶斯 | C1 | "朴素" = 特征条件独立假设 | 单选 |
| C2 | 贝叶斯公式形式 | 单选 | |
| C3 | 贝叶斯后验计算(垃圾邮件概率 0.75) | 填空 | |
| C4 | 拉普拉斯平滑的作用(消除零概率) | 单选 | |
| C5 | 按最大后验概率判决类别 | 单选 |
4.2 小组实践任务(每组提交一套,1 周内完成)
| 任务 | 内容 | 数据集建议 | 必交产出 | 评分点 |
|---|---|---|---|---|
| A 线性回归 | 拟合一条/多维回归线并评估 | 加州房价、身高体重(自造也可) | 代码 + 拟合图 + MSE、R² | 代码可运行(6) 图表规范(4) 指标解读(5) |
| B 逻辑回归 | 完成二分类并评估 | sklearn 自带乳腺癌数据集 | 代码 + 准确率 + 混淆矩阵 | 代码可运行(6) 混淆矩阵正确(4) 阈值讨论(5) |
| C 朴素贝叶斯 | 文本分类并评估 | 短信垃圾分类(SMS Spam)或 20news | 代码 + Precision/Recall | 代码可运行(6) 平滑说明(4) 指标解读(5) |
- 参考代码解锁:三个任务各配一套完整参考代码(数据加载 → 建模 → 评估),默认锁定;队长在「小组实践」页点击「✔ 本组已提交,解锁参考代码」后全队可见,也可撤销重新锁定。
提交物:① 三个任务的代码(.py/.ipynb);② 小组报告(含每个模型的公式推导简述、实验结果截图、结论);③ 答辩 PPT(10 分钟汇报 + 5 分钟答疑)。
五、评分体系与成绩统计
5.1 总评构成(满分 100)
| 成绩项 | 原始分 | 折算 | 评价人 | 统计方式 |
|---|---|---|---|---|
| 线上个人测验 | 300 分(3 × 100) | 50 分(测验总分 ÷ 3 × 0.5) | 网站自动 | 每人每模块得分、总分、均分 |
| 小组实践 | 100 分(代码 40 + 报告 40 + 答辩 20) | 40 分(组内同分) | 教师 | 教师评一次,全组共享 |
| 个人协作表现 | 100 分(出勤/分工完成度/组内互评) | 10 分 | 教师 | 每人单独评 |
- 线下综合分(0~100)= 小组实践分 × 0.8 + 个人协作分 × 0.2,由教师合并后录入网站;
- 总评(网站自动计算)= 测验总分 ÷ 3 × 0.5 + 线下综合分 × 0.5;
例:某同学线上测验 240 分(均分 80),线下综合分 85,则总评 = 80 × 0.5 + 85 × 0.5 = 82.5 分;
- 线下综合分未录入时,网站按 0 计并在成绩表中显示"—"提醒教师补录。
5.2 教师手动评分细则(实践任务 100 分)
| 维度 | 满分 | 评分参考 |
|---|---|---|
| 代码质量 | 40 | 三个任务均可运行复现(30);结构清晰、有注释(10) |
| 实验报告 | 40 | 公式推导正确(15);指标完整且解读合理(15);格式规范(10) |
| 答辩表现 | 20 | 讲解清晰(10);答问准确(10) |
5.3 个人协作表现评分参考(100 分)
基础分 70;分工任务按期完成 +10;组内互评前 20% +20;出勤/参与度酌情 ±(0~20 扣分)。
六、成绩统计方案(网站如何统计每个同学)
- 队伍与名单:系统预置 8 支队伍;每队首位登录者成为队长(系统二次确认),队长在「登录 / 我的队伍」页录入本队名单;队员用名单中的姓名登录后,答题成绩自动写入;
- 自动统计:"成绩统计"页实时显示每位同学的——线性回归得分、逻辑回归得分、朴素贝叶斯得分、测验总分(300)、测验均分、线下综合分、总评、队内排名、全班排名;顶部统计卡显示应考人数、已完成人数、平均总评、最高总评,并附 8 支队伍概览(人数 / 完成人数 / 队均分);
- 教师录入:在成绩表的"线下综合分"输入框直接填写(失焦自动保存),总评与排名即时重算;
- 导出归档:点击"导出 CSV 成绩表"生成含全部字段的表格文件(含队伍、角色、队内排名),可直接用 Excel/WPS 打开;
- 公网版的成绩回执(重要):网站部署到公网后,学生的答题数据保存在各自设备的浏览器里,教师端看不到。为此网站内置「成绩回执」机制——
- 学生在结果页点「复制回执码」,得到形如
MLHW2-xxxx-12345的字符串,发给教师(也可由队长统一收齐); - 教师在「成绩统计 → 导入学生成绩回执」中粘贴回执(支持一次粘贴多条,每行一条),点击「导入回执」;
- 系统按"队伍 + 姓名"自动建人并合并成绩(同一学生多次导入时保留较新的记录),随后总评、队内排名、全班排名与 CSV 导出立即可用;
- 回执带校验位,可发现复制不完整或随意改动;它用于汇总便利,不是防作弊手段,教师可结合课堂观察与答题过程核验;
- 重做管理:教师可在「教师管理」页"重置全部成绩(保留名单)",或"重置 8 支队伍"(清空名单与成绩);单个模块需重做时,可由队长移出该成员后重新添加(会清空其成绩),或教师重置该队成绩;
- 数据位置说明:本地版使用浏览器 localStorage,数据保存在录入名单的那台电脑、那个浏览器里。建议:① 固定使用教师机同一浏览器;② 每次课后在"成绩统计"页导出一次 CSV 备份;③ 请勿使用浏览器"无痕模式"。公网版则以教师机的导入结果为准,学生设备上的本地记录仅用于生成回执。
七、实施流程
| 步骤 | 时间 | 事项 | 责任人 |
|---|---|---|---|
| 1 | 发布前 | 打开「教师管理」确认 8 支队伍就绪,准备好课堂分组名单 | 教师 |
| 2 | 第 1 次课 | 课堂发布:讲解作业要求与评分规则(10 分钟),演示网站操作(10 分钟) | 教师 |
| 3 | 第 1 次课内/课后 3 天 | 学生完成线上三模块测验(提交即锁定),并把「成绩回执码」发给教师 | 每位学生 |
| 4 | 课后 1 周 | 小组完成三个实践任务,提交代码+报告+PPT | 各小组 |
| 5 | 第 2 次课 | 各组答辩(每组 10+5 分钟),教师评实践分与协作分 | 小组/教师 |
| 6 | 答辩后 3 天内 | 教师导入回执、录入线下综合分,核对总评排名,导出 CSV 归档 | 教师 |
八、网站使用说明
教师端(5 步)
- 双击打开
机器学习小组练习作业网站.html(或访问公网地址); - 进入「教师管理」确认 8 支队伍就绪(如需清空重来,用"重置 8 支队伍");
- 课堂上让各队第一位同学登录并成为队长,由队长在「登录 / 我的队伍」录入本队名单;
- 收齐学生发来的「成绩回执码」,进入「成绩统计 → 导入学生成绩回执」→ 粘贴(每行一条)→ 点「导入回执」;再录入每人的"线下综合分";
- 点击「导出 CSV 成绩表」完成归档。
学生端(5 步)
- 打开网站(公网地址或教师机上的本地文件)→ 进入「登录」;
- 选择自己所在的队伍 + 输入真实姓名(每队第一位登录者即队长,其余同学需队长先录入姓名);
- 进入「开始答题」,依次完成三个模块(每模块 5 题,可分次完成;提交前不要刷新页面);
- 提交后立即看到得分;答案与参考代码在结果页的折叠面板中,只有提交后才能展开;
- 三个模块完成后,在结果页点「复制回执码」发给老师(公网版必做,否则老师收不到你的成绩)。
常见问题
- 找不到自己的名字:让队长在「登录 / 我的队伍」里添加后再登录;
- 不小心成了队长:首位登录者会自动成为队长(有二次确认);若认领错误,教师可「重置 8 支队伍」后重新组织;
- 误提交想重做:默认锁定;可由队长把该成员移出再重新添加(清空其成绩),或教师重置该队成绩;
- 换电脑打开网站没有数据:成绩保存在录入名单的那台设备的浏览器中;公网版请用回执汇总;
- 公网版教师端看不到学生成绩:属正常现象(浏览器本地存储不互通),请让学生发「成绩回执码」并在「成绩统计」页导入;
- 导入回执提示"校验失败":多半是复制不完整或被截断,请学生重新复制整串代码(以
MLHW2-开头)。
九、注意事项与建议
- 公平性:线上测验建议当堂限时完成(网站提交即锁定);答案与代码提交后才解锁,避免提前对答案;
- 队伍管理:每队首位登录者会成为队长,建议教师在课堂上按分组名单点名,让指定同学先登录认领队长,避免误认领;
- 重名处理:系统按"队伍 + 姓名"识别,同队内重名会被拒绝添加,请让学生使用可区分的姓名(如"张伟A");
- 难度弹性:题目按"概念 4 + 计算 1"设计,面向初学者;如需提高难度,可要求报告加入正则化(岭回归/L1)、阈值调整对混淆矩阵的影响等扩展讨论并加分;
- 数据集替代:无网络环境时,任务 A 可用教师下发的 CSV,任务 B 用 sklearn 自带数据集,任务 C 可用教师分发的离线短信语料;
- 隐私与合规:成绩含学生姓名,仅限教学管理使用,导出的 CSV 请妥善保存。
十、公网部署(Tailscale Funnel)
| 项目 | 说明 |
|---|---|
| 主访问地址 | https://ml-homework.tail83f79e.ts.net/ |
| 备用地址 | https://ml-group-homework-tpqoevmb.edgeone.cool(EdgeOne Pages 静态镜像) |
| 配套方案页 | https://ml-homework.tail83f79e.ts.net/plan.html |
| 技术栈 | 教师机本地静态服务(127.0.0.1:8080)+ Tailscale Funnel 反向代理(HTTPS 自动证书) |
| 启动方式 | 双击 D:\现代信息\启动公网服务.bat,自动起服务并打开公网地址 |
运行依赖(重要):
- 教师机保持开机联网,Tailscale 客户端保持登录(服务随系统自启动);
- 本地 8080 静态服务需在运行——关闭命令窗口或重启电脑后,双击
启动公网服务.bat即可恢复; - 本机若开启代理软件(如 127.0.0.1:7890),请把
*.ts.net加入直连名单,否则教师机自身可能打不开;学生设备通常不受影响。
常用排障命令:
- 查看 Funnel 状态:
"C:\Program Files\Tailscale\tailscale.exe" funnel status - 查看节点状态:
"C:\Program Files\Tailscale\tailscale.exe" status - 关闭 Funnel:
"C:\Program Files\Tailscale\tailscale.exe" funnel --https=443 off - 本地自测:浏览器打开
http://127.0.0.1:8080/
数据说明:公网版数据仍保存在各学生设备浏览器中,教师端通过「成绩回执码」汇总(见第六节第 5 条);EdgeOne 镜像与 ts.net 主站使用同一套页面,数据互不相通,全班统一使用一个地址即可。
*本方案与配套网站均可在本地离线使用(双击 HTML 即可),也可部署到公网(Tailscale Funnel / 腾讯 EdgeOne Pages);公式记法与《中学数学知识全解_公式大全.md》保持一致(Unicode 文本公式)。*