Python 被认为是机器学习领域使用最多的编程语言。但是,你想过为什么吗?为什么如今机器学习变得如此流行?这完全是因为机器学习的易用性,在大量 Python 库的支持下,机器学习的易用性已经成为可能。现在,我们只需 10 到 15 行代码就能构建一个完整的 ML 模型,而在以前,这需要成百上千行代码。
为什么我们需要机器学习库?
库将可重复使用的代码模块打包,并通过接收用户输入并提供所需输出的函数将其呈现出来。不仅如此,这些库还通过使用多线程等概念为我们提供了函数的最佳优化形式,使执行时间变得非常快。因此,了解这些库可以节省时间,避免重复劳动。它让我们能够专注于机器学习中更高级的部分,比如开发更新的架构或创造更新的算法。
在开始 ML 之旅时,我们应该关注哪些库?
Python 社区是非常庞大的社区,这就是为什么我们有许多由各种类型的函数组成的 Python 库的支持。但我们只需要了解其中的一部分,就可以开始我们的机器学习之旅。在实践 ML 之前,我们应该练习的一些最流行的库有:
在此,我们将简要讨论这些库中的每一个库,并告诉大家学习技巧。
Numpy(数值 Python)
Numpy 是机器学习领域非常流行的开源库,几乎所有用于机器学习的代码中都能找到它的身影。原因在于 Numpy 用于执行数值计算。在 ML 中,我们将各种形式的数据集缩小为数值格式,然后将其输入机器,以提取有意义的隐藏模式。
它用于存储多维数组或矩阵并对其执行操作。从简单的线性代数到估算无穷傅里叶级数,它能支持各种数学函数进行更广泛的运算,其功能和支持远远超出了其他任何库。除此之外,与同类库相比,Numpy 的计算速度更快,并可作为其他库的基础。
学习 Numpy 的技巧
对于刚开始学习 ML 的初学者来说,学习 Numpy 的最佳方法是:
Scipy(科学 Python)
Scientific Python,俗称 Scipy,是在著名的 Numpy 库基础上构建的另一个开源库。它部分用 Python 编写,部分用 C 语言编写,以进一步提高数学计算的速度。它为线性代数、微积分、特征值问题、统计等提供支持。Scipy 是一个高级库,因此在深度学习或图形数据结构(如稀疏矩阵支持)中有一些重要应用。
我们应该会想到一个问题:既然已经有了 Numpy,为什么还要使用 Scipy?Scipy 是一个功能全面的软件包,包含线性代数、傅里叶级数、微积分、三角函数等所有与数值数据计算相关的内容。如果我们需要这些数值支持,那么 Scipy 会更好。否则,对于简单的数组形成、排序索引和简单的数学计算,Numpy 已绰绰有余。
学习 Scipy 的技巧
对于刚刚开始 ML 之旅的初学者来说,学习 Scipy 的最佳方法是:
Pandas
Pandas 是一个 Python 库,主要用于数据分析。它也是一个基于 Numpy 库构建的开源库,支持所有领域的大量数据集。机器学习初学者需要数据集来练习学习,以进行分析或构建 ML 模型。Pandas 库为更广泛的数据集提供了函数,初学者可以轻松使用这些函数进行练习。
它支持两种数据结构(用于一维的 Series 和用于多维的 DataFrame),可处理结构化或半结构化格式的数据。
学习 Pandas 的技巧
Matplotlib
Matplotlib 是一个流行的 Python 库,可为各种数据类型、训练、性能分析和可视化绘制曲线。该库有助于就更好的训练所需的数据或流程做出明智的决策。它是从事该行业的数据科学家或分析师使用最多的库之一,也是其他可视化库(如 Seaborn)的基础,后者对 matplotlib 绘图进行了美化。
学习 Matplotlib 的技巧
Scikit-Learn
Scikit-learn 是许多机器学习初学者和专业人士的一站式库。它提供了大量功能,包括用于练习 ML 的假数据、预处理模块、各种预定义的 ML 算法以及对训练评估和部署的支持。Pandas 和 Numpy 等早期库并没有提供上述额外支持。在我们所需的 ML 库列表中,Scikit-Learn 是唯一能够完成构建端到端 ML 管道所涉及的所有工作的库。
它是一个开源库,主要基于 Scipy、Numpy 和 Matplotlib 库构建,因此具有快速训练和评估的额外优势。它还支持可视化完整的模型开发流水线,其中包括如何接收、处理数据、将数据输入模型、进行训练、评估和发布结果等阶段。
学习 Scikit-Learn 的技巧
结论
对 Numpy、Scipy、Pandas、Matplotlib 和 Scikit-learn 这五个库的全面了解将被视为初学者的良好起点。