☰
Python Machine Learning 2nd Edition 代码仓库导航指南:从环境搭建到 16 章实战 Notebook 全索引
2026/9/29 7:57:44 网站建设 项目流程
  • 示例工程
  • 机器学习
  • 深度学习

【免费下载链接】python-machine-learning-book-2nd-edition

The "Python Machine Learning (2nd edition)" book code repository and info resource

项目地址:https://gitcode.com/gh_mirrors/py/python-machine-learning-book-2nd-edition
点击查看免费下载

本篇文章以《Python Machine Learning(第 2 版)》开源代码仓库的 code/README.md 为核心索引,系统讲解该仓库的目录结构、运行环境搭建、16 个章节 Notebook 的完整索引与两种使用方式,并结合仓库内的源码与自动化测试说明其工程化程度。读完本文,你将能够独立完成 Python + Jupyter 环境配置、快速定位任意章节的 Notebook/脚本/数据集资源,并理解仓库如何用jupyter nbconvert对全部章节代码做自动化回归验证。


一、仓库定位:一本书的“可运行代码骨架”

该仓库是《Python Machine Learning, 2nd Ed.》(Packt Publishing,2017 年 9 月出版,作者 Sebastian Raschka 与 Vahid Mirjalili)随书代码仓库。其顶层 README.md 明确了定位:所有代码示例按章节组织在 code/ 子目录下,每个章节同时提供 Jupyter Notebook(.ipynb)与由其转换而来的 Python 脚本(.py),并随附书中用到的原始图片、数据集与配套说明文件。

仓库根目录同时保留了完整的书目信息(ISBN 978-1787125933)、翻译版本(德文版 ISBN 978-3958457331、日文版 ISBN 978-4295003373)以及可供引用的 BibTeX 条目:

@book{RaschkaMirjalili2017, address = {Birmingham, UK}, author = {Raschka, Sebastian and Mirjalili, Vahid}, edition = {2}, ... title = {{Python Machine Learning, 2nd Ed.}}, year = {2017} }

需要特别强调的是,code/README.md 明确声明:这些只是随书的代码示例,notebook 中不包含公式与描述性文字,脱离书本正文单独使用可能难以理解。因此本文的定位是“索引与上手指南”,核心知识与推导仍应回归书本正文。


二、环境搭建:Python、pip/conda 与 Jupyter Notebook

code/README.md 将环境搭建指南指向 code/ch01/README.md。该书面向 Python>= 3.6.0编写,建议使用当时最新的 Python 3 版本;书中大部分代码示例也可能兼容更早的 Python 3 甚至 Python>= 2.7.10,但作者明确提醒:若使用 Python 2.7 执行示例,务必先了解 Python 3 与 2.7 之间的主要差异。

1. 检查当前 Python 版本

$ python -V

书中作者的示例输出为:

Python 3.6.1 :: Continuum Analytics, Inc.

2. 使用 pip 安装第三方包

pip自 Python 3.3 起就是 Python 标准库的一部分。安装任意包:

pip install SomePackage

其中SomePackage是numpy、pandas、matplotlib、scikit-learn等包名的占位符。更新已安装的包需加--upgrade标志:

pip install SomePackage --upgrade

3. 使用 Anaconda / conda(推荐)

Anaconda 是 Continuum Analytics 出品的科学计算发行版,免费(含商用)、跨平台,开箱即带数据科学、数学、工程所需的全部核心 Python 包。安装 Anaconda 后:

conda install SomePackage # 安装新包 conda update SomePackage # 更新已有包

4. 本书核心依赖的最低版本

为保障代码示例可正确运行,code/ch01/README.md 给出了作者写作时使用的核心包版本下限,安装时请确保版本大于或等于以下数值:

包名最低版本
NumPy>= 1.12.1
SciPy>= 0.19.0
scikit-learn>= 0.18.1
matplotlib>= 2.0.2
pandas>= 0.20.1

全书以 NumPy 的多维数组作为数据存储与操作的主载体,偶用建立在 NumPy 之上的 pandas 处理表格数据,并用高度可定制的 matplotlib 进行数据可视化。

5. 安装并启动 Jupyter Notebook

.ipynb即 Jupyter(前身 IPython)Notebook 文件。作者选择 Notebook 而非纯.py脚本,是因为它能“一锅端”地容纳代码、执行结果、数据图表以及支持 Markdown 与 LaTeX 语法的文档,非常适合数据分析类项目。可通过 pip 或 conda 安装:

$ pip install jupyter notebook

或:

$ conda install jupyter notebook

启动方式为:先进入存放代码示例的目录,再执行jupyter notebook:

$ cd ~/code/python-machine-learning-book $ jupyter notebook

Jupyter 会在默认浏览器中启动(典型地址为 http://localhost:8888/),随后即可在文件菜单中选取要打开的 notebook。

一个值得注意的术语细节:IPython Notebook 现已更名为 Jupyter Notebook——Jupyter 是一个伞形项目,除 Python 外还支持 Julia、R 等语言;对 Python 用户而言,只是术语从“IPython Notebook”换成了“Jupyter Notebook”。


三、16 章完整索引:目录、Notebook 与随附数据

code/README.md 的核心内容是一份完整的 16 章索引表。每个章节目录下通常包含:.ipynb(Notebook 主文件)、.py(由 Notebook 转换的脚本)、images/(书中插图)、README.md(章节说明)以及该章使用的数据集。

下表完整继承原文档的章节清单,并补充了各章随附的数据与脚本资产(数据文件来自仓库实际目录):

#章节主题章节目录Notebook主要数据/资产
1Machine Learning – Giving Computers the Ability to Learn from Datacode/ch01ch01.ipynb无代码示例(见 code/ch01/README.md)
2Training Machine Learning Algorithms for Classificationcode/ch02ch02.ipynbiris.data、iris.names.txt、ch02.py
3A Tour of Machine Learning Classifiers Using Scikit-Learncode/ch03ch03.ipynbch03.py
4Building Good Training Sets – Data Pre-Processingcode/ch04ch04.ipynbwine.data、wine.names.txt、ch04.py
5Compressing Data via Dimensionality Reductioncode/ch05ch05.ipynbwine.data、wine.names.txt、ch05.py
6Learning Best Practices for Model Evaluation and Hyperparameter Optimizationcode/ch06ch06.ipynbwdbc.data、wdbc.names.txt、ch06.py
7Combining Different Models for Ensemble Learningcode/ch07ch07.ipynbwine.data、wine.names.txt、ch07.py
8Applying Machine Learning to Sentiment Analysiscode/ch08ch08.ipynbmovie_data.csv.gz、ch08.py
9Embedding a Machine Learning Model into a Web Applicationcode/ch09ch09.ipynb4 个 Flask 应用目录、movie_data.csv.gz、reviews.sqlite
10Predicting Continuous Target Variables with Regression Analysiscode/ch10ch10.ipynbhousing.data.txt、ch10.py
11Working with Unlabeled Data – Clustering Analysiscode/ch11ch11.ipynbch11.py
12Implementing a Multi-layer Artificial Neural Network from Scratchcode/ch12ch12.ipynbneuralnet.py、MNIST 四个.gz文件、ch12.py
13Parallelizing Neural Network Training with TensorFlowcode/ch13ch13.ipynbMNIST 四个.gz文件、ch13.py
14Going Deeper: The Mechanics of TensorFlowcode/ch14ch14.ipynbch14.py
15Classifying Images with Deep Convolutional Neural Networkscode/ch15ch15.ipynbMNIST 四个.gz文件、example-image.png、ch15.py
16Modeling Sequential Data Using Recurrent Neural Networkscode/ch16ch16.ipynbmovie_data.csv.gz、pg2265.txt(Project Gutenberg 文本)、ch16.py

章节序号 1~10 覆盖经典机器学习(感知机、逻辑回归、SVM、决策树、数据预处理、降维、模型评估、集成学习、情感分析、回归分析),第 12~16 章则从零实现多层神经网络到 TensorFlow 并行训练、TensorFlow 机制、卷积神经网络与循环神经网络。第 1 章本身不包含代码示例,其价值集中在环境搭建指南(见 code/ch01/README.md)。


四、两种使用方式:Notebook 优先,.py 脚本兜底

code/README.md 明确给出了作者的使用建议:

  1. 优先使用 Jupyter Notebook:notebook 内含图片与章节标题,导航更友好;更关键的是支持逐单元(stepwise)执行代码片段,作者认为这能提供更好的学习体验。即使不安装 Jupyter,也可以直接在平台上点击.ipynb文件在线查看(例如 code/ch02/ch02.ipynb)。
  2. .py 脚本作为备选:各章目录中的.py文件由对应 notebook 转换生成,可用任意纯文本编辑器查看和编辑。

以 code/ch02/README.md 为例,各章 README 都附带“A note on using the code examples”一节,重复强调同一套工作流:Anaconda 用户执行conda install jupyter notebook→jupyter notebook→ 浏览器窗口导航到目标.ipynb文件。作者还特别说明,每个 notebook 都内置了与书本一致的目录与章节标题,并嵌入了书中原始图片,方便边读边跑。

章节 README 还提供了各章内容大纲。例如 code/ch03/README.md 列出第 3 章主题:分类算法选型、scikit-learn 初体验、逻辑回归、SVM 与核技巧、决策树与随机森林、K 近邻;code/ch16/README.md 则列出 RNN 的完整学习路径:序列数据建模 → RNN 结构与激活计算 → 长程交互的挑战 → LSTM → TensorFlow 多层 RNN 情感分析 → 字符级语言模型。这些大纲可直接作为逐章精读的导航地图。


五、源码级纵深:第 9 章 Flask Web 应用的可运行示例

code/README.md 将第 9 章“把机器学习模型嵌入 Web 应用”作为特例列出了 4 个可直接运行的 Flask 应用目录(见 code/ch09/README.md):

  • 1st_flask_app_1/:最简单的 Flask Web 应用;
  • 1st_flask_app_2/:在1st_flask_app_1基础上增加灵活的表单校验与渲染;
  • movieclassifier/:把电影评论分类器嵌入 Web 应用;
  • movieclassifier_with_update/:与movieclassifier相同,但启动时从 SQLite 数据库更新模型。

本地运行方式为进入对应目录并执行主应用脚本:

cd ./1st_flask_app_1 python3 app.py

终端会出现典型输出:

* Running on http://127.0.0.1:5000/ * Restarting with reloader

然后在浏览器中访问终端显示的地址(通常为 http://127.0.0.1:5000/)即可查看应用。

从仓库源码看,movieclassifier/目录的结构印证了第 9 章的工作流:vectorizer.py负责词袋向量化与特征提取,pkl_objects/下存放序列化后的分类器(classifier.pkl)与停用词(stopwords.pkl),reviews.sqlite用于存储数据,templates/提供reviewform.html、results.html、thanks.html等页面模板。这正对应章节大纲中的“序列化 scikit-learn 估计器 → 搭建 SQLite 数据库 → 开发 Flask 应用”三步流程。值得注意的是,仓库根目录另有 code/ch09/pickle-test-scripts/(含pickle-dump-test.py、pickle-load-test.py及小样本movie_data_small.csv),用于单独验证 pickle 序列化/反序列化流程的可用性。


六、工程化验证:用 nbconvert 自动化执行全部 16 章 Notebook

仓库在 code/tests/test_notebooks.py 中提供了覆盖全部章节的自动化测试,这是理解“代码示例如何保证可运行”的关键源码证据。其核心机制如下:

args = ["jupyter", "nbconvert", "--execute", "--inplace", "--debug", "--ExecutePreprocessor.timeout=5000", "--ExecutePreprocessor.kernel_name=%s" % kernel_name, nb_path]
  • 使用jupyter nbconvert --execute对 notebook 进行就地执行(--inplace),即以实际运行结果校验代码正确性;
  • 每个单元的超时上限设为 5000 秒(--ExecutePreprocessor.timeout=5000),适配深度学习章节较长的训练耗时;
  • 根据 Python 大版本自动选择内核:Python 3 使用kernel_name='python3',否则使用'python2';
  • 每个测试方法对应一章(test_ch01~test_ch16),执行前会os.chdir到对应章节目录,保证相对路径数据(如iris.data、wine.data)能被正确加载。

测试中对部分章节做了条件限定:test_ch08、test_ch09、test_ch16仅在 Python 3 下运行(注释给出的理由是 Py2 的 unicode 处理差异,以及 ch09 依赖 Python 3 特定的 pickle 文件)。这套测试与顶层 README 的 Travis CI 构建状态徽章相互印证——16 章 notebook 均可通过真实执行验证,而不是静态的占位代码。


七、使用边界与注意事项

根据 code/README.md 的原文声明,使用本仓库代码时需注意三点:

  1. 代码 ≠ 全书:notebook 不包含公式与描述性文字,建议配合《Python Machine Learning(第 2 版)》书本正文使用;
  2. 版本约束:请确保核心依赖满足上文“最低版本表”,否则部分示例可能因 API 变化而运行失败;
  3. 环境差异:Python 2.7 仅在“可能兼容”范围内,深度学习相关章节(ch12~ch16)与 Flask 应用(ch09)更建议在 Python 3 环境中运行。

如需反馈问题,可按 code/README.md 末尾的 Contact 段落联系作者(邮箱、Google Groups 邮件列表以及作者博客/社交账号均可),本书亦存在已发布的第三版(2019 年 12 月)代码仓库,本文介绍的为第二版仓库内容。


结语

从环境搭建(Python/pip/conda、Jupyter Notebook)、16 章完整索引,到 Notebook 与.py双轨使用方式、第 9 章 Flask 应用实战与nbconvert自动化验证,本仓库的 code/README.md 实际上是一个“一键上路”的随书代码中枢。按本文路径配置好环境后,从 code/ch01/README.md 起步,逐章打开 code/ch02/ch02.ipynb 直至 code/ch16/ch16.ipynb,即可完整复现书中从感知机到循环神经网络的整条学习曲线。

  • 示例工程
  • 机器学习
  • 深度学习

【免费下载链接】python-machine-learning-book-2nd-edition

The "Python Machine Learning (2nd edition)" book code repository and info resource

项目地址:https://gitcode.com/gh_mirrors/py/python-machine-learning-book-2nd-edition
点击查看免费下载
上一篇:GHelper 上手指南:免费轻量工具,四步接管华硕笔记本性能与风扇
下一篇:窗口死活拖不动?免费强制调整窗口大小,一步搞定

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询