1-1环境配置与认知启蒙
📌 一、 课程导入(5 分钟)
主题:机器学习课程的环境准备
机器学习程序的运行依赖大量第三方库(numpy、pandas、scikit-learn、matplotlib 等),环境配置错误将导致代码无法执行。机器学习初学者的常见障碍并非算法理解困难,而是开发环境的搭建与配置问题。
本课聚焦于机器学习开发环境的完整搭建,涵盖 Python 发行版安装、多版本管理机制、三种主流开发工具的配置与使用,以及 Jupyter Notebook 的核心操作。课程末尾通过一个完整的机器学习程序(基于 scikit-learn 的 KNN 分类器)验证环境可用性。
- 👨🏫 教师活动:以提问方式调查学生在过往编程实践中遇到的 import 报错经历,引出环境配置在机器学习课程中的基础性地位。
- 🧑🎓 学生活动:回顾自身遇到的环境问题并简要分享。
以实际开发中的典型痛点切入,建立“环境配置是机器学习实践的前提条件”这一认知,明确本课在课程体系中的基础定位。
📖 二、 解决问题过程(一):WinPython 安装与环境验证(20 分钟)
1. WinPython 简介
WinPython 是 Windows 平台下的 Python 科学计算发行版,具备以下特征:
- 免安装:解压即用,不写入 Windows 注册表,卸载仅需删除目录。
- 预置科学计算栈:numpy、pandas、matplotlib、scikit-learn、jupyter 等库预编译安装。
- 可移植:支持安装在 U 盘等便携存储设备中跨机器使用。
官方地址:https://winpython.github.io/ 推荐版本:WinPython64-3.10.x 或 3.11.x(Windows 7 需使用 3.8.9 及更早版本)
2. 安装步骤
- 从 GitHub Releases 下载
.exe安装包。 - 解压至不含空格和中文字符的路径,例如
D:\WinPython或C:\Tools\WinPython。 - 打开解压目录,双击
WinPython Command Prompt.exe。 - 在命令行中执行以下命令验证安装:
3. WinPython 目录结构中的工具
| 工具 | 可执行文件 | 功能说明 |
|---|---|---|
| WinPython Command Prompt | WinPython Command Prompt.exe |
预配置环境变量的命令行终端 |
| WinPython Control Panel | WinPython Control Panel.exe |
图形化包管理界面 |
| Spyder | spyder.exe |
科学计算集成开发环境 |
| Jupyter Notebook | jupyter-notebook.exe |
交互式计算笔记本 |
| Qt Console | qtconsole.exe |
增强型 IPython 控制台 |
所有工具共用同一个 Python 解释器,通过任一工具安装的包均可被其他工具识别。
- 👨🏫 教师活动:演示 WinPython 的解压安装全流程,逐一打开各工具入口并说明其功能定位。
- 🧑🎓 学生活动:跟随完成 WinPython 的安装,在 Command Prompt 中执行验证命令并截图保存。
通过手把手操作确保每位学生完成环境安装,同时建立对整个工具链的全局认知。
📖 三、 解决问题过程(二):多 Python 版本管理(20 分钟)
1. 问题场景
一台计算机可能同时存在多个 Python 解释器(官方 Python、Anaconda、WinPython 及各 IDE 捆绑版本)。命令行中执行 python 命令时具体调用哪个解释器,取决于操作系统的查找机制。
2. PATH 环境变量机制
Windows 操作系统查找可执行文件的顺序:
- 当前工作目录
- PATH 环境变量中列出的目录(按自上而下的顺序)
3. 指定 Python 解释器的三种方法
方法一:Windows py launcher
优势:无需修改 PATH。局限:WinPython 默认未向 py launcher 注册。
解决没注册的问题:找到 WinPython Command Prompt.exe 并双击运行
输入python -m winpython –register
方法二:修改系统 PATH 环境变量
- 右键“此电脑”→ 属性 → 高级系统设置 → 环境变量
- 在 Path 变量中将目标 Python 路径(如
D:\WinPython\)移至最上方 - 重启命令行终端生效
注意:修改系统变量需管理员权限。
方法三:绝对路径调用
优势:精确指定,不依赖任何环境变量配置。适用于机房受限环境和自动化脚本。
- 👨🏫 教师活动:图示讲解 PATH 查找机制,依次演示三种指定方法的操作过程。
- 🧑🎓 学生活动:在命令行中执行
where python和py --list,分别用三种方式调用 Python 并比对版本号。
本环节为本课核心难点。通过“现象引入 → 原理剖析 → 解决方案”的递进结构,帮助学生建立系统性环境管理思维,避免停留在机械照搬命令的层面。
📖 四、 解决问题过程(三):三种 IDE 的配置与使用(20 分钟)
1. VS Code 中指定 Python 解释器
方式一:状态栏切换 点击 VS Code 底部状态栏的 Python 版本号,从弹出列表中选择目标解释器。
方式二:命令面板切换
Ctrl+Shift+P → 输入 “Python: Select Interpreter” → 选择目标解释器。
方式三:手动输入路径
若列表中未显示 WinPython,选择 “Enter interpreter path” → 浏览至 D:\WinPython\python.exe。
VS Code 选定解释器后,终端、调试、代码补全、代码检查等功能均使用该解释器。
验证代码:
2. Spyder 中指定 Python 解释器
配置步骤:
- 启动 Spyder(
spyder.exe) - 菜单栏 → Tools → Preferences → Python Interpreter
- 选择 “Use the following Python interpreter”
- 浏览并选定
D:\WinPython\python.exe - 点击 Apply → OK → 重启 Spyder
Spyder 界面组件:
| 区域 | 名称 | 主要用途 |
|---|---|---|
| 左侧 | 代码编辑器 | 编写 .py 脚本文件 |
| 右上 | 变量浏览器(Variable Explorer) | 查看变量类型、形状、数值 |
| 右下 | IPython 控制台 | 交互式代码执行 |
变量浏览器是 Spyder 区别于其他编辑器的核心特色功能,适合机器学习代码调试。
3. 三款工具的功能定位与协作策略
| 工具 | 适用场景 |
|---|---|
| VS Code | 正式项目开发、.py 模块编写、版本控制集成 |
| Spyder | 算法调试、变量状态监控 |
| Jupyter Notebook | 数据分析探索、可视化、实验文档撰写 |
三者共用同一个 WinPython 解释器时,可实现代码与模块的跨工具无缝调用。
- 👨🏫 教师活动:演示 VS Code 中三种切换解释器的方法;演示 Spyder 解释器配置步骤;通过验证代码展示三者共用同一解释器的效果。
- 🧑🎓 学生活动:在 VS Code 和 Spyder 中分别完成解释器配置,运行验证代码确认配置正确。
基于学生已有的 VS Code 基础,重点讲授解释器切换这一核心操作,同时拓展 Spyder 工具并建立三款工具协作使用的整体视图。
📖 五、 解决问题过程(四):Jupyter Notebook 深度讲解(20 分钟)
简单的任务用 Notebook,复杂的项目用 Lab。
1. 启动方式
在 WinPython 目录双击 jupyter-notebook.exe,或在 WinPython Command Prompt 中执行:
启动后浏览器自动打开 http://localhost:8888。启动 Jupyter 的终端窗口不可关闭,否则内核将终止。
2. 核心概念
两种模式:
| 模式 | 外观标识 | 进入方式 |
|---|---|---|
| 编辑模式 | 单元格边框绿色 | 按 Enter |
| 命令模式 | 单元格边框蓝色 | 按 Esc |
两种单元格类型:
- Code:执行 Python 代码
- Markdown:撰写格式化文本,支持 LaTeX 数学公式
3. 核心快捷键
| 快捷键 | 功能 | 适用模式 |
|---|---|---|
Shift + Enter |
运行当前单元格并跳转至下一单元格 | 任意 |
Ctrl + Enter |
运行当前单元格 | 任意 |
Alt + Enter |
运行当前单元格并在下方新建单元格 | 任意 |
Esc → A |
在上方插入单元格 | 命令模式 |
Esc → B |
在下方插入单元格 | 命令模式 |
Esc → DD |
删除当前单元格 | 命令模式 |
Esc → M |
切换为 Markdown 单元格 | 命令模式 |
Esc → Y |
切换为 Code 单元格 | 命令模式 |
Esc → H |
显示快捷键帮助 | 命令模式 |
4. 常用魔法命令
- 👨🏫 教师活动:演示 Jupyter 启动及界面布局;逐一演示各快捷键和魔法命令的执行效果。
- 🧑🎓 学生活动:跟随教师启动 Jupyter Notebook,新建 Notebook,依次练习所有核心快捷键和关键魔法命令。
Jupyter Notebook 是本课程后续使用频率最高的工具之一。本环节通过“概念认知 → 快捷键训练 → 魔法命令应用”的完整路径,确保学生形成肌肉记忆,为后续交互式数据分析与实验记录打好基础。
✍️ 六、 解决问题过程(五):机器学习第一行代码 + 课堂练习(15 分钟)
第一个机器学习程序
在 Jupyter Notebook 中运行以下代码,完成基于 KNN 算法的鸢尾花分类任务:
该程序在不到 15 行代码内完成了数据加载、训练/测试分割、模型训练、性能评估与可视化全流程,用于验证环境的完整可用性。各函数的具体原理将在后续课程中逐一展开。
- 👨🏫 教师活动:逐行解释代码的功能(不作深入原理讲解),运行并展示结果,强调环境验证的目的。
- 🧑🎓 学生活动:在 Jupyter Notebook 中逐行输入并运行代码,观察输出,体验完整 ML 程序流程。
在课程尾声通过一个完整的可执行程序验证环境配置的正确性,同时让学生建立对机器学习工作流的初步感性认识,为后续课程内容的展开铺设基础。
✍️ 七、 课堂练习与巩固(10 分钟)
📝 八、 课堂小结(5 分钟)
flowchart LR
root["📊 机器学习第一课"]
subgraph C1["🔧 环境安装"]
direction TB
A1["WinPython 解压即用"]
A2["自带科学计算全家桶"]
A3["验证: python --version"]
end
subgraph C2["⚙️ 版本管理"]
direction TB
B1["PATH 环境变量决定优先级"]
B2["where python 查看当前"]
B3["三种指定方式: py / 改PATH / 绝对路径"]
end
subgraph C3["🛠️ 三种 IDE"]
direction TB
C1_node["VS Code: 状态栏切换解释器"]
C2_node["Spyder: 变量浏览器调试"]
C3_node["Jupyter: 交互式数据分析"]
end
subgraph C4["📓 Jupyter 核心"]
direction TB
D1["命令模式(Esc) vs 编辑模式(Enter)"]
D2["核心快捷键: Shift+Enter / A / B / DD"]
D3["魔法命令: %matplotlib inline / %time"]
end
subgraph C5["🤖 第一个 ML 程序"]
direction TB
E1["sklearn 加载鸢尾花数据集"]
E2["KNN 分类器训练与评估"]
E3["matplotlib 可视化展示"]
end
root --> C1
root --> C2
root --> C3
root --> C4
root --> C5
style root fill:#4b6cb7,stroke:#253b6e,color:#fff,stroke-width:2px,rx:8px,ry:8px
style C1 fill:#e3f2fd,stroke:#2196f3,stroke-width:1px
style C2 fill:#fff3e0,stroke:#ff9800,stroke-width:1px
style C3 fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
style C4 fill:#fce4ec,stroke:#e91e63,stroke-width:1px
style C5 fill:#f3e5f5,stroke:#9c27b0,stroke-width:1px
✏️ 随堂检测与互动练习
📮 九、 课后作业与拓展
📋 十、 板书设计
🔤 本课用到的单词
| 单词 | 发音(美式) | 解释 |
|---|---|---|
| Python | /ˈpaɪθɑːn/ | 高级编程语言,本课程使用的核心开发语言 |
| WinPython | /wɪn ˈpaɪθɑːn/ | Windows 平台免安装的 Python 科学计算发行版 |
| Anaconda | /ˌænəˈkɑːndə/ | Python 科学计算发行版,包含 conda 包管理器 |
| PATH | /pæθ/ | 操作系统环境变量,存储可执行文件的搜索目录列表 |
| Interpreter | /ɪnˈtɜːrprətər/ | 解释器,逐行执行源代码的程序(如 python.exe) |
| IDE | /aɪ diː iː/ | Integrated Development Environment,集成开发环境 |
| VS Code | /viː es koʊd/ | Visual Studio Code,微软开发的轻量级代码编辑器 |
| Spyder | /ˈspaɪdər/ | 科学计算专用 Python IDE,名称源于 Scientific Python Development Environment |
| Jupyter | /ˈdʒuːpɪtər/ | 交互式计算笔记本环境,名称源于 Julia、Python、R 三种语言 |
| Notebook | /ˈnoʊtbʊk/ | 交互式文档,包含代码、文本、图表等元素 |
| Kernel | /ˈkɜːrnl/ | 计算内核,Jupyter 中负责代码执行的引擎 |
| Markdown | /ˈmɑːrkdaʊn/ | 轻量级标记语言,用于编写格式化文本 |
| Magic Command | /ˈmædʒɪk kəˈmænd/ | 魔法命令,Jupyter/IPython 中以 % 或 %% 开头的特殊指令 |
| Cell | /sel/ | 单元格,Jupyter Notebook 的基本编辑单元 |
| scikit-learn | /ˈsaɪkɪt lɜːrn/ | Python 机器学习库,简称 sklearn |
| numpy | /ˈnʌmpaɪ/ | Numerical Python,Python 数值计算基础库 |
| matplotlib | /ˌmætˈplɒtlɪb/ | Python 2D 绘图库,名称源于 MATLAB plot library |
| KNN | /keɪ en en/ | K-Nearest Neighbors,K 近邻算法,本课演示的第一个 ML 算法 |
| Iris Dataset | /ˈaɪrɪs ˈdeɪtəset/ | 鸢尾花数据集,机器学习经典入门数据集 |
| Accuracy | /ˈækjərəsi/ | 准确率,分类任务评估指标:正确预测数 / 总样本数 |