Python 生态系统正在发展,并可能成为机器学习的主导平台。
采用 Python 进行机器学习的主要理由是,它是一种通用编程语言,既可用于研究开发,也可用于生产。
在这篇文章中,您将了解 Python 机器学习生态系统。
通过我的新书《使用 Python 进行机器学习精通》开启您的项目,包括分步教程和所有示例的 Python 源代码文件。
让我们开始吧。

Python 机器学习生态系统
图片来源:Stewart Black,保留部分权利。
Python
Python 是一种通用解释型编程语言。它易于学习和使用,主要因为该语言注重可读性。
Python 的哲学体现在Python 之禅中,其中包括以下短语:
- 优美胜于丑陋。
- 明了胜于隐晦。
- 简单胜于复杂。
- 复杂胜于繁琐。
- 扁平胜于嵌套。
- 稀疏胜于密集。
- 可读性很重要。
您可以通过在 Python 环境中输入以下内容来查看完整的 Python 之禅:
1 |
import this |
它是一种流行的通用语言,在 StackOverflow 的调查中(例如2015 年的调查结果)始终位列前 10 名编程语言。它是一种动态语言,非常适合交互式开发和快速原型设计,同时具备支持开发大型应用程序的能力。
由于其出色的库支持,以及它是一种通用编程语言(与 R 或 Matlab 不同),它也广泛用于机器学习和数据科学。例如,请参阅2011 年 Kaggle 平台调查结果和KDD Nuggets 2015 工具调查结果。
这是一个简单而非常重要的考虑因素。
这意味着您可以使用与操作中相同的编程语言进行研究和开发(确定要使用的模型)。这极大地简化了从开发到操作的过渡。
需要 Python 机器学习方面的帮助吗?
参加我为期 2 周的免费电子邮件课程,探索数据准备、算法等等(附带代码)。
立即点击注册,还将免费获得本课程的 PDF 电子书版本。
SciPy
SciPy 是一个用于数学、科学和工程的 Python 库生态系统。它是 Python 的一个附加组件,您在机器学习中会用到它。
SciPy 生态系统由以下与机器学习相关的核心模块组成:
- NumPy:SciPy 的基础,让您可以高效地处理数组中的数据。
- Matplotlib:允许您从数据创建 2D 图表和绘图。
- pandas:用于组织和分析数据的工具和数据结构。
要在 Python 中有效地进行机器学习,您必须安装并熟悉 SciPy。具体来说:
- 您将使用 Pandas 加载、探索并更好地理解您的数据。
- 您将使用 Matplotlib(以及其他框架中 Matplotlib 的封装器)创建数据的绘图和图表。
- 您将把数据准备为 NumPy 数组,以用于机器学习算法中的建模。
您可以在文章《使用 Pandas 在 Python 中准备机器学习数据》和《使用 Pandas 进行快速而简易的数据分析》中了解更多关于 Pandas 的信息。
scikit-learn
scikit-learn 库是您在 Python 中开发和实践机器学习的方式。
它建立在 SciPy 生态系统之上,并需要 SciPy 生态系统。“scikit”这个名称暗示它是一个 SciPy 插件或工具包。您可以查看可用 SciKits 的完整列表。
该库的重点是用于分类、回归、聚类等机器学习算法。它还提供用于相关任务的工具,例如评估模型、调整参数和预处理数据。
与 Python 和 SciPy 一样,scikit-learn 是开源的,并且在 BSD 许可证下可用于商业用途。这意味着您可以使用相同的生态系统和代码来学习机器学习、开发模型并将其投入运营。这是使用 scikit-learn 的一个强大理由。
您可以在文章《scikit-learn 入门指南》中了解更多关于 scikit-learn 的信息。
Python 生态系统安装
有多种方法可以安装用于机器学习的 Python 生态系统。本节将介绍如何安装用于机器学习的 Python 生态系统。
如何安装 Python
第一步是安装 Python。我更喜欢并推荐使用 Python 2.7。
这将根据您的平台而定。有关说明,请参阅《Python 初学者指南》中的下载 Python。
安装完成后,您可以确认安装成功。打开命令行并键入:
1 |
python --version |
您应该看到如下响应:
1 |
Python 2.7.11 |
如何安装 SciPy
安装 SciPy 的方法有很多。例如,两种流行的方法是使用您平台上的包管理器(例如 RedHat 上的 yum 或 OS X 上的 macports)或使用 pip 等 Python 包管理工具。
SciPy 文档非常出色,并在“安装 SciPy Stack”页面上介绍了许多不同平台的安装说明。
安装 SciPy 时,请确保至少安装以下包:
- scipy
- numpy
- matplotlib
- pandas
安装完成后,您可以确认安装成功。在命令行中键入“python”打开 Python 交互式环境,然后键入并运行以下 Python 代码以打印已安装库的版本。
1 2 3 4 5 6 7 8 9 10 11 12 |
# scipy import scipy print('scipy: %s' % scipy.__version__) # numpy import numpy print('numpy: %s' % numpy.__version__) # matplotlib import matplotlib print('matplotlib: %s' % matplotlib.__version__) # pandas import pandas print('pandas: %s' % pandas.__version__) |
在发帖时,我的工作站上看到以下输出。
1 2 3 4 |
scipy: 0.17.0 numpy: 1.10.4 matplotlib: 1.5.1 pandas: 0.17.1 |
您看到什么输出?请在评论中发布。
如果出现错误,您可能需要查阅您平台的文档。
如何安装 scikit-learn
我建议您使用与安装 SciPy 相同的方法来安装 scikit-learn。
有安装 scikit-learn 的说明,但它们仅限于使用 Python pip 和 conda 包管理器。
与 SciPy 一样,您可以确认 scikit-learn 已成功安装。启动您的 Python 交互式环境,然后键入并运行以下代码。
1 2 3 |
# scikit-learn import sklearn print('sklearn: %s' % sklearn.__version__) |
它将打印已安装的 scikit-learn 库的版本。在我的工作站上,我看到以下输出:
1 |
sklearn: 0.17.1 |
如何安装生态系统:更简单的方法
如果您对在计算机上安装软件不自信,有一个更简单的选择。
有一个名为 Anaconda 的发行版,您可以免费下载和安装。
它支持 Microsoft Windows、Mac OS X 和 Linux 三个主要平台。
它包含 Python、SciPy 和 scikit-learn。您需要的所有东西都可以用 Python 环境学习、实践和使用机器学习。
总结
在这篇文章中,您了解了 Python 机器学习生态系统。
您了解了:
- Python 及其在机器学习中日益增长的用途。
- SciPy 及其通过 NumPy、Matplotlib 和 Pandas 提供的功能。
- scikit-learn,它提供了所有的机器学习算法。
您还学习了如何在您的工作站上安装 Python 机器学习生态系统。
您对 Python 机器学习或本文有任何疑问吗?请在评论中提出您的问题,我将尽力回答。
刚开始接触 Python、数据科学和机器学习。您的资源和帖子让我能够以结构化的方式学习,并对需要学习的内容有了一个宏观的了解。这只是一个感谢信。
不客气,Antole。
我得到了这些版本
scipy : 0.14.1
numpy : 1.8.2
matplotlib : 1.4.2
pandas : 0.15.0
使用这些版本没问题吗?还是建议更新?谢谢
应该没问题,试试看。
非常感谢 Jason Brownlee.. 但您能帮我安装 anaconda 吗?致敬!
我相信安装 anaconda 很简单。
如果您无法设置环境,我的材料可能不适合您。
我得到了这些,对吗?
scipy : 0.17.1
numpy : 1.1.11
matplotlib : 1.5.1
pandas : 0.18.1
看起来不错,尝试一些示例。
Jason,对我用 Python 开始机器学习很有用,非常感谢!
scipy: 0.18.0
numpy: 1.11.1
matplotlib: 1.5.2
pandas: 0.18.1
很高兴听到这个消息。
Jason……上面那张图不是蟒蛇——而是蚺。具体来说,它看起来像马达加斯加的杜氏蚺。我想您会想知道。[一名前业余爬行动物学家] 🙂
谢谢 Mitch。
运行上面给出的 scipy 代码后,我得到了这个…………
Python 2.7.13 (v2.7.13:a06454b1afa1, 2016年12月17日, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
输入“copyright”、“credits”或“license()”获取更多信息。
>>>
感谢 Jason 帮助我开始学习机器学习。我选择使用 Anaconda,并且已安装库的版本如下。
scipy: 0.18.1
numpy: 1.12.0
matplotlib: 2.0.0
pandas: 0.19.2
祝好,
干得好,Ed!
很棒的汇编!我想,Jupyter/ipython 是一个相当重要的补充。
谢谢。
我不建议使用笔记本
https://machinelearning.org.cn/faq/single-faq/why-dont-use-or-recommend-notebooks
嗨 Jason,谢谢您的网站。您有机会制作解释 Python 周边架构的教程吗?我正在考虑创建虚拟环境、pip 安装……导航 Spyder 或更重要的是 PyCharm。