ML-For-Beginners:12 周 26 课经典机器学习课程体系的完整学习指南
本文围绕 ML-For-Beginners 仓库的根 README 展开,系统讲解这套 12 周、26 课、52 个测验的经典机器学习(classic machine learning)课程如何组织、如何学习、如何离线运行与本地部署。读完后你将掌握该课程从克隆、按周学习、完成项目到自托管测验应用与离线文档站点的完整实操路径。
课程定位:经典机器学习,主打 Scikit-learn
ML-For-Beginners 是一套由 Microsoft Cloud Advocates 出品的 12 周、26 课 的机器学习课程体系。它的核心定位是 经典机器学习:主要使用 Scikit-learn 作为核心库,明确不涵盖深度学习内容(深度学习由同团队的 AI for Beginners 课程覆盖)。课程以"环球旅行"为主题线索,把经典机器学习技术应用于世界不同地区的数据集:北美南瓜价格(回归)、亚洲与印度料理(分类)、尼日利亚音乐口味(聚类)、欧洲浪漫酒店评论(NLP)、世界电力消耗(时间序列)以及"帮 Peter 躲开狼"(强化学习)等,让每个技术模块都有真实数据场景支撑。
仓库根目录 README.md 中给出的课程规模是:12 weeks, 26 lessons, 52 quizzes。从仓库实际目录结构看,课程按 9 个主题模块组织:1-Introduction(导论)、2-Regression(回归)、3-Web-App(Web 应用)、4-Classification(分类)、5-Clustering(聚类)、6-NLP(自然语言处理)、7-TimeSeries(时间序列)、8-Reinforcement(强化学习)、9-Real-World(真实世界应用)。
快速开始:克隆仓库与精简下载
学习的第一步是克隆仓库。README 建议的标准流程是:
- Fork 仓库到你的 GitHub 账号;
- 执行
git clone克隆到本地。
由于仓库包含 50 多种语言的翻译,完整克隆体积较大。README 提供了基于 sparse checkout 的精简方案,可以跳过 translations 与 translated_images 两个大目录,显著加快下载速度:
Bash / macOS / Linux:
git clone --filter=blob:none --sparse https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners.git
cd ML-For-Beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
CMD(Windows):
git clone --filter=blob:none --sparse https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners.git
cd ML-For-Beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
其中 --filter=blob:none 表示按需拉取文件内容(blob),--no-cone 允许使用引号包裹的 glob 排除规则 !translations 与 !translated_images。这套命令保留了完成课程所需的全部教材、代码与数据,只是省去了多语言翻译副本。
克隆完成后,如遇到安装、环境配置或运行课程时的问题,可查阅仓库根目录的 TROUBLESHOOTING.md;教师用户可参考 for-teachers.md 中的课程使用建议。
学员学习流程:从测验到 PAT 的七步闭环
README 为学习者规定了明确的七步学习循环,这也是本课程"高频测验 + 项目驱动"教学法的核心执行路径:
- 课前热身测验(pre-lecture quiz):开课前完成一组预热题目,帮助设定学习目标;
- 阅读课程并完成活动:跟随文字课程推进,在每个 knowledge check(知识检查点)处暂停反思;
- 理解优先于照抄:README 明确建议"通过理解课程来创建项目,而不是直接运行 solution 代码"。不过每个项目型课程的
/solution文件夹中都备有可运行的完整解答(包括 Python notebook 与 R Markdown 版本); - 课后测验(post-lecture quiz):巩固当课内容;
- 完成挑战(challenge):在课程基础上做延伸练习;
- 完成作业(assignment):每个课程目录下的
assignment.md提供具体作业要求; - 完成一个课程组后填写 PAT:到课程讨论区"大声学习"(learn out loud),填写 PAT(Progress Assessment Tool,进步评估工具)量规,并对他人的 PAT 做出回应,实现共同学习。
这种"课前测验 → 课程 → 课后测验 → 挑战 → 作业"的设计,是刻意通过低风险测验在前端锚定学习意图、在后端强化记忆留存。
课程地图:26 课 + 2 篇后记的完整清单
以下是 README 课程表的完整内容,覆盖全部 26 课与 2 篇 Postscript 后记。每课均标注所属模块、学习目标与课程入口,链接已统一为仓库根目录相对路径:
| 课号 | 主题 | 所属模块 | 学习目标 | 课程入口 |
|---|---|---|---|---|
| 01 | 机器学习导论 | Introduction | 掌握机器学习的基本概念 | Lesson |
| 02 | 机器学习简史 | Introduction | 了解这一领域的历史脉络 | Lesson |
| 03 | 公平性与机器学习 | Introduction | 构建与应用 ML 模型时应关注的公平性哲学问题 | Lesson |
| 04 | 机器学习技术 | Introduction | ML 研究者用来构建模型的技术 | Lesson |
| 05 | 回归导论 | Regression | 用 Python 与 Scikit-learn 起步回归建模 | Python |
| 06 | 北美南瓜价格 | Regression | 为 ML 做准备的数据可视化与清洗 | Python |
| 07 | 北美南瓜价格 | Regression | 构建线性与多项式回归模型 | Python |
| 08 | 北美南瓜价格 | Regression | 构建逻辑回归模型 | Python |
| 09 | 构建 Web 应用 | Web App | 用已训练模型构建 Web 应用 | Python |
| 10 | 分类导论 | Classification | 数据清洗、准备与可视化;分类入门 | Python |
| 11 | 亚洲与印度料理 | Classification | 分类器入门 | Python |
| 12 | 亚洲与印度料理 | Classification | 更多分类器 | Python |
| 13 | 亚洲与印度料理 | Classification | 用模型构建推荐 Web 应用 | Python |
| 14 | 聚类导论 | Clustering | 数据清洗、准备与可视化;聚类入门 | Python |
| 15 | 探索尼日利亚音乐口味 | Clustering | 探索 K-Means 聚类方法 | Python |
| 16 | NLP 导论 | NLP | 通过构建简单机器人学习 NLP 基础 | Python |
| 17 | 常见 NLP 任务 | NLP | 理解处理语言结构的常见任务 | Python |
| 18 | 机器翻译与情感分析 | NLP | 用简·奥斯汀作品做翻译与情感分析 | Python |
| 19 | 欧洲浪漫酒店 | NLP | 酒店评论情感分析(一) | Python |
| 20 | 欧洲浪漫酒店 | NLP | 酒店评论情感分析(二) | Python |
| 21 | 时间序列预测导论 | Time Series | 时间序列预测入门 | Python |
| 22 | 世界电力消耗 - ARIMA | Time Series | 用 ARIMA 做时间序列预测 | Python |
| 23 | 世界电力消耗 - SVR | Time Series | 用支持向量回归做时间序列预测 | Python |
| 24 | 强化学习导论 | Reinforcement | 用 Q-Learning 入门强化学习 | Python |
| 25 | 帮 Peter 躲开狼 | Reinforcement | 强化学习 Gym | Python |
| Postscript | 真实世界 ML 场景与应用 | ML in the Wild | 经典 ML 有趣且发人深省的真实应用 | Lesson |
| Postscript | 用 RAI dashboard 调试 ML 模型 | ML in the Wild | 使用 Responsible AI dashboard 组件调试模型 | Lesson |
课程难度设计遵循"项目从小做起、到 12 周循环结束时复杂度递增"的原则,Postscript 后记既可作为附加分练习,也可作为讨论基础。
每课的标准内容结构
README 明确列出每课包含的元素,学习任一课时可按此清单核对内容完整性:
- 可选的 sketchnote(手绘笔记,仓库
sketchnotes/目录收录了各主题的手绘图解,如ml-regression.png、ml-fairness.png等); - 可选的补充视频;
- 视频讲解(仅部分课程提供);
- 课前热身测验(pre-lecture warmup quiz);
- 文字课程正文;
- 项目型课程的逐步构建指南;
- 知识检查点(knowledge checks);
- 挑战(challenge);
- 补充阅读;
- 作业(assignment);
- 课后测验(post-lecture quiz)。
关于语言双轨制:课程主要以 Python 编写,但许多课程同时提供 R 版本。完成 R 课程的方法是进入对应课程的 /solution 文件夹查找 R 版本——它们使用 .Rmd 扩展名,即 R Markdown 文件。README 对 R Markdown 给出了定义:它是在 Markdown 文档中嵌入 code chunks(R 或其他语言的代码块)与 YAML header(指导 PDF 等输出格式的格式化配置)的文档。作为数据科学写作框架,它允许你把代码、代码输出与思路批注统一写下来,并且可以渲染为 PDF、HTML 或 Word。从仓库结构看,例如 2-Regression/1-Tools/solution/ 目录即同时包含 Python notebook 与 R 版本答案,与课表中"Python / R"双入口的标注相互印证。
测验系统:52 个测验与可本地部署的 Quiz App
全部 52 个测验(每课一个、每个 3 题)的内容都包含在 quiz-app/ 文件夹中。测验从各课程内部链接进入在线版,但 quiz app 支持本地运行,也可部署到 Azure。
从 quiz-app/package.json 可以看到,这是一个基于 Vue 3(vue: ^3.5.12)的项目,依赖 vue-router 与 vue-i18n(后者支撑测验的多语言展示),构建工具为 Vue CLI 5。quiz-app/src/router/index.js 定义了三个路由:首页 /、答题页 /quiz/:id(按测验 ID 进入)、以及 404 兜底路由,并采用 history 模式——因此静态托管时需要把任意路径回退到 index.html,这正是 quiz-app/public/routes.json 中 "route": "/*" 映射到 /index.html 的用途。
本地运行步骤(来自 quiz-app/README.md):
npm install
npm run serve # 编译并热重载,开发模式
npm run build # 编译并压缩,生产构建
npm run lint # 代码检查与修复
部署到 Azure Static Web App 的要点在 quiz-app README 中有完整指南:在 Azure 门户创建 Static Web App 资源,选择 GitHub 作为源、指定 quiz-app 目录,Azure 会自动生成 GitHub Actions 工作流(Azure/static-web-apps-deploy@v1),其中关键参数为 app_location: "/quiz-app"、output_location: "dist"。工作流触发条件为 main 分支的 push 与 pull_request 事件,构建完成后应用即部署到 Azure 提供的 URL。
离线文档站与 PDF:Docsify 工具链
仓库内置了基于 Docsify 的离线文档能力,相关配置分散在三个文件中,构成一条完整链路:
- index.html:Docsify 的入口页。它引入 docsify 4 的 CDN 脚本,并通过
window.$docsify配置站点名Machine Learning for Beginners、开启relativePath: true(使各课程内的相对链接在离线站点中正确解析)与auto2top: true; - docs/_sidebar.md:Docsify 的侧边栏目录文件,按 9 大模块组织全部 26 课的导航链接,是离线浏览时的主目录;
- docsifytopdf.js:docsify-to-pdf 的生成配置,
contents指向docs/_sidebar.md,输出到 pdf/readme.pdf,页边距设为上下各 100px,并使用emulateMedia: 'print'以打印媒体类型渲染。package.json 中对应的脚本为npm run convert(实际执行node_modules/.bin/docsify-to-pdf,devDependencies 锁定docsify-to-pdf@0.0.5)。
离线运行的标准步骤是:在仓库根目录安装 Docsify 后执行:
docsify serve
文档站点即运行在本地 localhost:3000 端口,可完全脱离在线课程站点使用。
多语言支持与配套资源
README 的语言表格标注了 50+ 种语言的翻译(含简体中文、繁体中文港台澳、日语、韩语、法语、德语、阿拉伯语等),并说明翻译由 GitHub Action 自动化维护、始终与英文主版本同步。每种语言的入口为 translations/<语言代码>/README.md,如 translations/zh-CN/README.md。对应地,translated_images/ 目录按同样的语言代码组织了各语言版本的配图副本。对于不需要翻译的学习者,前文的 sparse checkout 命令即可跳过这些内容。
除教材外,README 还指引了几类配套资源:
- sketchnotes:
sketchnotes/目录收录公平性、回归、聚类、时间序列、强化学习等主题的手绘笔记(如 sketchnotes/ml-regression.png),适合作为每课前的直觉概览; - 视频讲解:部分课程提供短视频讲解,内嵌于课程页面;
- 排错指南:TROUBLESHOOTING.md 覆盖安装、配置与运行课程的常见问题;
- 社区与答疑:README 建议遇到问题时加入课程社区讨论、在仓库中提交 Issue 反馈 bug 或改进建议;
- PDF 版课程:pdf/readme.pdf 提供带链接的完整课程 PDF,便于离线打印阅读。
学习技巧方面,README 给出三条建议:每课之后回顾 notebook、独立尝试实现算法、用所学概念探索真实数据集。
延伸阅读路径
本课程的 9 大模块内部各自成体系,每个模块的 README(如 2-Regression/README.md、6-NLP/README.md)会进一步展开该模块的学习要点与课程链接。建议的学习方式是以模块为单位推进:先完成模块内各课的"课前测验 → 课程 → 课后测验"循环,再完成模块作业,最后按 README 的七步流程填写 PAT,把 12 周的 26 课按 Introduction → Regression → Web App → Classification → Clustering → NLP → TimeSeries → Reinforcement → Real-World 的顺序走完,即可完整覆盖经典机器学习从数据准备、建模、评估到部署与负责任 AI 调试的全流程。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00