【指南】机器学习中流行Python库的学习技巧

2024年02月21日 由 alex 发表 282 0

9


Python 被认为是机器学习领域使用最多的编程语言。但是,你想过为什么吗?为什么如今机器学习变得如此流行?这完全是因为机器学习的易用性,在大量 Python 库的支持下,机器学习的易用性已经成为可能。现在,我们只需 10 到 15 行代码就能构建一个完整的 ML 模型,而在以前,这需要成百上千行代码。


为什么我们需要机器学习库?

库将可重复使用的代码模块打包,并通过接收用户输入并提供所需输出的函数将其呈现出来。不仅如此,这些库还通过使用多线程等概念为我们提供了函数的最佳优化形式,使执行时间变得非常快。因此,了解这些库可以节省时间,避免重复劳动。它让我们能够专注于机器学习中更高级的部分,比如开发更新的架构或创造更新的算法。


在开始 ML 之旅时,我们应该关注哪些库?

Python 社区是非常庞大的社区,这就是为什么我们有许多由各种类型的函数组成的 Python 库的支持。但我们只需要了解其中的一部分,就可以开始我们的机器学习之旅。在实践 ML 之前,我们应该练习的一些最流行的库有:


  1. Numpy(Numerical-Python),用于高效执行数值计算。
  2. Scipy(科学 Python)用于优化线性代数、微积分和基于图像数据的计算。
  3. Pandas 用于高效管理数据集。
  4. Matplotlib 用于可视化数据集或执行分析。
  5. Scikit-learn 用于构建端到端的机器学习管道。


在此,我们将简要讨论这些库中的每一个库,并告诉大家学习技巧。


Numpy(数值 Python)


10


Numpy 是机器学习领域非常流行的开源库,几乎所有用于机器学习的代码中都能找到它的身影。原因在于 Numpy 用于执行数值计算。在 ML 中,我们将各种形式的数据集缩小为数值格式,然后将其输入机器,以提取有意义的隐藏模式。


它用于存储多维数组或矩阵并对其执行操作。从简单的线性代数到估算无穷傅里叶级数,它能支持各种数学函数进行更广泛的运算,其功能和支持远远超出了其他任何库。除此之外,与同类库相比,Numpy 的计算速度更快,并可作为其他库的基础。


学习 Numpy 的技巧


对于刚开始学习 ML 的初学者来说,学习 Numpy 的最佳方法是:


  • 学习切片、广播、堆叠、扁平化、重塑和调整 numpy 数组大小等关键操作。
  • 使用 Numpy 创建一个虚拟多维数组,并执行矩阵乘法、加法或减法等线性代数操作。
  • 尝试比较 "基于库的解决方案 "和 "自行实现的解决方案 "的执行时间,并观察 numpy 的优势。


Scipy(科学 Python)


11


Scientific Python,俗称 Scipy,是在著名的 Numpy 库基础上构建的另一个开源库。它部分用 Python 编写,部分用 C 语言编写,以进一步提高数学计算的速度。它为线性代数、微积分、特征值问题、统计等提供支持。Scipy 是一个高级库,因此在深度学习或图形数据结构(如稀疏矩阵支持)中有一些重要应用。


我们应该会想到一个问题:既然已经有了 Numpy,为什么还要使用 Scipy?Scipy 是一个功能全面的软件包,包含线性代数、傅里叶级数、微积分、三角函数等所有与数值数据计算相关的内容。如果我们需要这些数值支持,那么 Scipy 会更好。否则,对于简单的数组形成、排序索引和简单的数学计算,Numpy 已绰绰有余。


学习 Scipy 的技巧


对于刚刚开始 ML 之旅的初学者来说,学习 Scipy 的最佳方法是:


  • Scipy 主要用于信号处理。因此,在音频数据集的情况下,它的效果最好。因此,加载音频数据集,执行傅立叶分析,并提取见解。
  • 使用 Scipy 库可以轻松形成正弦、余弦和正切等波形。因此,为了在假算法上练习 ML 以检查模型是否在学习,可以在正弦或余弦数据集上检查该模型的模式跟踪能力。
  • 使用 Scipy 执行矩阵乘法、查找行列式、特征值和特征向量等线性代数计算,并比较与 Numpy 库的执行性能。


Pandas


12


Pandas 是一个 Python 库,主要用于数据分析。它也是一个基于 Numpy 库构建的开源库,支持所有领域的大量数据集。机器学习初学者需要数据集来练习学习,以进行分析或构建 ML 模型。Pandas 库为更广泛的数据集提供了函数,初学者可以轻松使用这些函数进行练习。


它支持两种数据结构(用于一维的 Series 和用于多维的 DataFrame),可处理结构化或半结构化格式的数据。


学习 Pandas 的技巧


  • 探索 Pandas 库中的现有数据集,玩玩基本功能,如查看 DataFrame、排序、预处理,然后导出为 CSV、JSON 或文本文件。
  • 从 CSV、excel 表、JSON 和文本文件等不同文件扩展名读取数据,应用处理和数据分析技术,然后将处理后的数据保存到该文件中。
  • 使用 Pandas 内置的绘图函数,看看它提供了哪些数据绘图支持。


Matplotlib


13


Matplotlib 是一个流行的 Python 库,可为各种数据类型、训练、性能分析和可视化绘制曲线。该库有助于就更好的训练所需的数据或流程做出明智的决策。它是从事该行业的数据科学家或分析师使用最多的库之一,也是其他可视化库(如 Seaborn)的基础,后者对 matplotlib 绘图进行了美化。


学习 Matplotlib 的技巧


  • 从可视化两个简单列表或数组之间关系的简单绘图开始。
  • 在不同数据集上尝试各种数据分析技术,绘制直方图、饼图、条形图、散点图和盒状图等曲线。还请理解这些图的含义,因为这将提高读图能力。
  • 绘制3D散点图以直观显示高维数据集。


Scikit-Learn


14


Scikit-learn 是许多机器学习初学者和专业人士的一站式库。它提供了大量功能,包括用于练习 ML 的假数据、预处理模块、各种预定义的 ML 算法以及对训练评估和部署的支持。Pandas 和 Numpy 等早期库并没有提供上述额外支持。在我们所需的 ML 库列表中,Scikit-Learn 是唯一能够完成构建端到端 ML 管道所涉及的所有工作的库。


它是一个开源库,主要基于 Scipy、Numpy 和 Matplotlib 库构建,因此具有快速训练和评估的额外优势。它还支持可视化完整的模型开发流水线,其中包括如何接收、处理数据、将数据输入模型、进行训练、评估和发布结果等阶段。


学习 Scikit-Learn 的技巧


  • Scikit-Learn 是一个庞大的库,一次性学习并不可取。因此,在构建模型开发管道时,我们最好在需要时使用这些功能。
  • 观察从头开始开发的 ML 算法与 Scikit-learn 内置功能的执行时间之间的差异。这样就能更好地了解这些库在多大程度上有助于快速执行。
  • 使用 Scikit-learn 中的标签编码方法将非数值特征转换为数值。在数据集较大的情况下,这可以节省大量时间。
  • 尝试加载一些数据集 → 对其进行预处理 → 必要时使用标签编码器 → 对数据特征进行归一化处理 → 使用降维技术 → 尝试训练算法 → 可视化训练模型的性能 → 创建完整的管道并将其可视化。


结论

对 Numpy、Scipy、Pandas、Matplotlib 和 Scikit-learn 这五个库的全面了解将被视为初学者的良好起点。

文章来源:https://medium.com/enjoy-algorithm/popular-python-libraries-in-machine-learning-db9d7f433626
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消