- 示例工程
- 机器学习
- 深度学习
【免费下载链接】python-machine-learning-book-2nd-edition
The "Python Machine Learning (2nd edition)" book code repository and info resource
本篇文章以《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 --upgrade3. 使用 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 notebookJupyter 会在默认浏览器中启动(典型地址为 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 | 主要数据/资产 |
|---|---|---|---|---|
| 1 | Machine Learning – Giving Computers the Ability to Learn from Data | code/ch01 | ch01.ipynb | 无代码示例(见 code/ch01/README.md) |
| 2 | Training Machine Learning Algorithms for Classification | code/ch02 | ch02.ipynb | iris.data、iris.names.txt、ch02.py |
| 3 | A Tour of Machine Learning Classifiers Using Scikit-Learn | code/ch03 | ch03.ipynb | ch03.py |
| 4 | Building Good Training Sets – Data Pre-Processing | code/ch04 | ch04.ipynb | wine.data、wine.names.txt、ch04.py |
| 5 | Compressing Data via Dimensionality Reduction | code/ch05 | ch05.ipynb | wine.data、wine.names.txt、ch05.py |
| 6 | Learning Best Practices for Model Evaluation and Hyperparameter Optimization | code/ch06 | ch06.ipynb | wdbc.data、wdbc.names.txt、ch06.py |
| 7 | Combining Different Models for Ensemble Learning | code/ch07 | ch07.ipynb | wine.data、wine.names.txt、ch07.py |
| 8 | Applying Machine Learning to Sentiment Analysis | code/ch08 | ch08.ipynb | movie_data.csv.gz、ch08.py |
| 9 | Embedding a Machine Learning Model into a Web Application | code/ch09 | ch09.ipynb | 4 个 Flask 应用目录、movie_data.csv.gz、reviews.sqlite |
| 10 | Predicting Continuous Target Variables with Regression Analysis | code/ch10 | ch10.ipynb | housing.data.txt、ch10.py |
| 11 | Working with Unlabeled Data – Clustering Analysis | code/ch11 | ch11.ipynb | ch11.py |
| 12 | Implementing a Multi-layer Artificial Neural Network from Scratch | code/ch12 | ch12.ipynb | neuralnet.py、MNIST 四个.gz文件、ch12.py |
| 13 | Parallelizing Neural Network Training with TensorFlow | code/ch13 | ch13.ipynb | MNIST 四个.gz文件、ch13.py |
| 14 | Going Deeper: The Mechanics of TensorFlow | code/ch14 | ch14.ipynb | ch14.py |
| 15 | Classifying Images with Deep Convolutional Neural Networks | code/ch15 | ch15.ipynb | MNIST 四个.gz文件、example-image.png、ch15.py |
| 16 | Modeling Sequential Data Using Recurrent Neural Networks | code/ch16 | ch16.ipynb | movie_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 明确给出了作者的使用建议:
- 优先使用 Jupyter Notebook:notebook 内含图片与章节标题,导航更友好;更关键的是支持逐单元(stepwise)执行代码片段,作者认为这能提供更好的学习体验。即使不安装 Jupyter,也可以直接在平台上点击
.ipynb文件在线查看(例如 code/ch02/ch02.ipynb)。 - .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 的原文声明,使用本仓库代码时需注意三点:
- 代码 ≠ 全书:notebook 不包含公式与描述性文字,建议配合《Python Machine Learning(第 2 版)》书本正文使用;
- 版本约束:请确保核心依赖满足上文“最低版本表”,否则部分示例可能因 API 变化而运行失败;
- 环境差异: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
相关推荐
Python Machine Learning 2nd Edition 仓库全景指南:16 章代码、环境搭建与第二版新增要点
Python Machine Learning 2nd Edition 仓库全景指南:16 章代码、环境搭建与第二版新增要点 本文以《Python Machin
示例工程机器学习深度学习Python Machine Learning 代码仓库指南:环境搭建与 13 章 Notebook 导航全解析
Python Machine Learning 代码仓库指南:环境搭建与 13 章 Notebook 导航全解析 《Python Machine Learnin
机器学习教程Python Machine Learning 2nd Edition 第16章实战:使用循环神经网络(RNN/LSTM)建模序列数据
Python Machine Learning 2nd Edition 第16章实战:使用循环神经网络(RNN/LSTM)建模序列数据 本篇文章围绕《Pytho
示例工程机器学习深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考