2024 数据科学现状:6 大重要数据趋势
生成式 AI 和 LLM 是今年的热门主题,但它们是否正影响数据科学和机器学习的发展趋势? 数据科学领域有哪些新趋势值得关注? JetBrains 每年都会与 Python Software Foundation 合作开展 Python 开发者调查,该调查将为这些问题提供一些有用的洞察。
最新一期调查的结果在 2023 年 11 月到 2024 年 2 月之间收集,新增了数据科学部分。 此部分更全面地提供了过去一年的数据科学发展趋势,并强调了 Python 在这一领域的重要性。
虽然有 48% 的 Python 开发者会参与数据探索和处理,但使用 Python 进行数据分析的受访者百分比却从 2022 年的 51% 降至 2023 年的 44%。 使用 Python 进行机器学习的受访者百分比从 2022 年的 36% 降至 2023 年的 34%。 同时,27% 的受访者使用 Python 进行数据工程,8% 的受访者使用 Python 进行 MLOps,这两个新类别于 2023 年加入到调查中。
我们来仔细研究一下调查结果的趋势,以了解这些数字背后蕴含的信息,从而更好地理解它们的含义。 请继续阅读,了解数据科学和机器学习领域的最新发展,为 2025 年做好准备。
数据处理:pandas 依然是首选,但 Polars 正抢占份额
数据处理是数据科学的重要组成部分。 拥有 15 年历史的 pandas 项目在最常用的数据处理工具名单中仍位居前列。 77% 的受访者使用它进行数据探索和处理。 作为一个成熟的项目,它的 API 很稳定,并且可以在网上找到很多有效示例。 pandas 仍是显而易见的选择毫不让人意外。 作为由 NumFOCUS 赞助的项目,pandas 已向社区证明其可持续性,它的治理模式已获得用户信任。 对于仍在学习数据处理的初学者来说,pandas 是一个不错的选择,因为它属于不会快速变化的稳定项目。
另一方面,将自己定位为新时代 DataFrame 的 Polars 凭借其在速度和并行处理方面的优势在近两年备受关注。 2023 年,一家由 Polars 的创始人 Ritchie Vink 领导的公司成立,以支持该项目的发展。 这样可以确保 Polars 将能够保持其快速发展速度。 2024 年 7 月,1.0 版本的 Polars 发布。 后来,Polars 扩展了与 Hugging Face 和 NVIDIA RAPIDS 等其他热门数据科学工具的兼容性。 它也像 pandas 一样提供了一个轻量级绘图后端。
因此,对于数据科学领域的专业人士,转为使用 Polars 会带来一定的优势。 随着项目的成熟,它可以成为数据科学工作流中的承载工具,并且可以用于更快地处理更多数据。 在 2023 年度的调查中,10% 的受访者表示自己正在使用 Polars 作为数据处理工具。 不难想象,这一数字在今年的调查中将更高。
无论您是职场专业人士,还是刚刚开始处理第一个数据集的新手,拥有一个可以提升工作愉悦感的高效工具都非常重要。 利用 PyCharm,您可以通过交互式表检查数据,对表进行滚动、排序、筛选、将其转换为绘图,或使用表生成热图。 此外,您还可以获得每一列的分析数据,并使用 AI 辅助解释 DataFrame 或创建可视化效果。 除了 pandas 和 Polars 之外,PyCharm 还为 Hugging Face 数据集、NumPy、PyTorch 和 TensorFlow 提供此功能。
Polars 的普及催生了名为 Narwhals 的新项目。 Narwhals 独立于 pandas 和 Polars,旨在合并这两种工具(以及许多其他工具)的 API。 由于这一项目尚处于起步阶段(2024 年 2 月启动),还未出现在我们的最受欢迎数据处理工具名单中,但我们认为未来几年它的名字会出现在名单中。
还值得一提的是 Spark (16%) 和 Dask (7%),得益于并行处理能力,它们对于处理大量数据非常有用。 设置这些工具要具备较高的工程能力。 但随着项目所依赖的数据量日益超出传统 Python 程序所能处理的限值,这些工具将变得更为重要,我们可能会看到这些数字的增长。
数据可视化:HoloViz Panel 明年是否会赶超 Plotly Dash 和 Streamlit?
数据科学家必须能够创建报告并向企业解释其发现。 已经开发了多种交互式可视化仪表板工具,以搭配使用 Python。 根据调查结果,最受欢迎的工具是 Plotly Dash。
Plotly 在数据科学社区中以 ggplot2 库著称,ggplot2 是备受 R 语言用户欢迎的可视化库。 自从 Python 成为数据科学领域的热门语言后,Plotly 也提供了一个 Python 库,这为您在 Python 中提供了类似于 ggplot2 的体验。 Dash 是一个由 Plotly 开发的用于构建反应式 Web 应用的 Python 框架,近年来,它已成为习惯使用 Plotly 并需要构建交互式仪表板的用户的首选。 不过,在设计应用的布局时,要使用 Dash 的 API,需要对 HTML 中使用的元素有一些基本了解。 对于前端经验不足的用户,他们可能需要克服这一障碍,然后才能有效使用 Dash。
“最佳可视化仪表板”的第二名是 Streamlit,它现在已与 Snowflake 联手。 它不像 Plotly 一样拥有悠久的历史,但凭借着简单易用、附带命令行工具的特点在过去几年迅猛发展。 虽然 Streamlit 不像 Plotly 一样可以自定义,但它的仪表板布局构建起来非常简单,并支持多页面应用,因此可以构建更复杂的应用程序。
不过,在 2024 年度的调查结果中,这些数字可能略有变化。 几个新兴工具的受欢迎程度可能会赶上甚至超过这些应用。 其中一个是 HoloViz Panel。 作为 HoloViz 生态系统中的一个库,它由 NumFOCUS 赞助,并在 PyData 社区中获得了越来越多的关注。 Panel 允许用户生成 HTML 格式的报告,并与 Jupyter Notebook 完美配合。 它提供的模板可以帮助新用户入门,并提供了大量自定义选项供专家用户微调仪表板。
机器学习模型:scikit-learn 表现依然突出,而 PyTorch 在深度学习方面最受欢迎
由于生成式 AI 和 LLM 近年来一直都是热门话题,您可能会认为深度学习框架和库将完全占据主导地位。 但事实并不完全如此。 scikit-learn 是一个主要由研究人员维护的知名机器学习库,利用它提供的基于统计信息的传统方法,我们仍可以从数据中提取大量洞察。 自 2020 年由 NumFocus 赞助以来,scikit-learn 一直是机器学习和数据科学领域中最重要的库。 另一个为科学计算提供支持的 Python 库 SciPy 也是数据科学领域中最常用的库之一。
尽管如此,我们仍不能忽视深度学习的影响以及深度学习框架受欢迎程度的提高。 由 Meta 创建的机器学习库 PyTorch 现在由 Linux Foundation 管理。 鉴于这一变化,我们可以期待 PyTorch 继续作为开源生态系统中的承载库,并保持其活跃的社区参与度。 作为最常用的深度学习框架,它备受 Python 用户的喜爱,尤其是熟悉 NumPy 的用户,因为 PyTorch 中的基本数据结构“张量”与 NumPy 数组非常相似。
TensorFlow 使用的是静态计算图,PyTorch 与之不同,它使用的是动态图,这使得在 Python 中进行性能分析变得非常轻松。 最值得一提的是,PyTorch 还提供了分析 API,因此成为研究和试验的最佳选择。 不过,如果您的深度学习项目需要进行可扩缩部署,并且需要支持多种编程语言,TensorFlow 可能是更好的选择,因为它与多种语言兼容,包括 C++、JavaScript、Python、C#、Ruby 和 Swift。 Keras 可以提高 TensorFlow 的易用性,也是颇受欢迎的深度学习框架工具。
对于深度学习来说,还有一个我们不能忽视的框架,它就是 Hugging Face Transformers。 Hugging Face 汇集了很多最先进的预训练深度学习模型,这些模型在数据科学和机器学习社区备受欢迎,您可以下载这些模型并进行进一步训练。 Transformers 是一个由 Hugging Face 和社区维护的库,用于使用 PyTorch、TensorFlow 和 JAX 进行最先进的机器学习。 由于 LLM 的普及,我们可以预期 Hugging Face Transformers 将在 2024 年收获更多用户。
使用 PyCharm,您可以在专用的工具窗口中识别和管理 Hugging Face 模型。 PyCharm 还可以帮助您直接在 IDE 中从种类繁多的 Hugging Face 模型中选择适合您的用例的正确模型。
2024 年值得关注的一个新库是 Scikit-LLM,借助该库,您可以利用 ChatGPT 等开放式 AI 模型,并将这些模型与 scikit-learn 集成。 需要进行文本分析时,这种方法非常方便,您执行分析时可以将 scikit-learn 中的模型与新型 LLM 模型的功能结合使用。
MLOps:数据科学项目的未来
在数据科学项目中,一个重要但却经常被忽视的方面是 MLOps(机器学习运维)。 在数据科学项目工作流中,数据科学家需要管理数据、重新训练模型,并对使用的所有数据和模型进行版本控制。 有时,在机器学习应用程序部署到生产环境后,还需要观察并监测其性能和使用情况。
近年来,涌现了专为数据科学项目设计的 MLOps 工具。 一直困扰着数据科学家和数据工程师的问题之一是数据的版本控制,当管道不断有数据流入时,版本控制至关重要。
数据科学家和工程师还需要跟踪其试验。 由于将使用新数据重新训练机器学习模型,并对超参数进行微调,务必跟踪模型训练和试验结果。 目前,最流行的工具是 TensorBoard。 不过,这一局面可能很快会改变。 TensorBoard.dev 已被弃用,这意味着用户现在不得不在本地部署自己的 TensorBoard 安装,或使用 TensorBoard 的 Google Colab 集成共享结果。 因此,我们可能会发现 TensorBoard 的使用率下降,而 MLflow 和 PyTorch 等其他工具的使用率增加。
为确保数据项目顺利运行而需要采取的另一 MLOps 步骤是交付开发环境用于生产。 使用 Docker 容器是软件工程师常用的开发做法,数据科学社区似乎也采用了这种做法。 这样可以确保开发环境和生产环境保持一致,这一点对于所涉及的机器学习模型需要作为应用程序进行部署的数据科学项目来说非常重要。 我们可以看到,Docker 这一工具在需要将服务部署到云的 Python 用户中很受欢迎。
今年,在“Python 安装和升级”类别中,Docker 容器略微领先于 Anaconda。
大数据:多少数据才够用?
一个常见的误解是,我们将需要更多数据来训练更好、更复杂的模型,以提高预测能力。 但事实并非如此。 由于模型可能会过拟合,在机器学习方面,并非数据越多越好。 根据用例、模型以及同时处理的数据量,可能需要不同的工具和方式。
在 Python 中处理大量数据的挑战在于,大部分 Python 库都依赖于内存中存储的数据。 我们可以直接部署具有大量内存的云计算资源,但即使是这种方式也有限制,有时速度会很慢,成本也很高。
在处理内存难以容纳的大量数据时,常见的解决方案是使用分布式计算资源。 计算任务和数据分布到集群中,以并行方式执行和处理。 这种方式会使数据科学和机器学习操作具有可扩缩性,在这方面最受欢迎的引擎是 Apache Spark。 Spark 可与 PySpark(Spark 的 Python API 库)结合使用。
自 Spark 2.0 起,鼓励任何 Spark RDD API 用户转为使用性能更高的 Spark SQL。 由于 Spark SQL 可以执行 SQL 查询,数据科学家还可以利用它更轻松地处理数据。 我们可以预期 PySpark 仍将是 2024 年最受欢迎的选择。
另一个用于管理集群中数据的流行工具是 Databricks。 如果您使用 Databricks 处理集群中的数据,现在可以受益于 Databricks 与 PyCharm 集成带来的强大功能。 您可以在 PyCharm 中为管道和作业编写代码,然后在 Databricks 集群上实时部署、测试和运行这些代码,而无需进行任何额外配置。
社区:活动将侧重点转向数据科学
很多 Python 新手都将它用于数据科学,因此越来越多的 Python 库可以满足数据科学用例的需求。 同样,像 PyCon 和 EuroPython 这样的 Python 活动开始包括更多关注数据科学的主题、演讲和在线讲座,而像 PyData 和 SciPy 这样的数据科学专题活动也仍然很受欢迎。
总结
数据科学和机器学习的热度越来越高,伴随着 AI 和 LLM 的普及,越来越多的新开源工具可用于数据科学。 数据科学领域保持迅猛发展的势头,我们非常期待 2024 年调查结果揭晓最受欢迎的工具。
使用 PyCharm 提升您的数据科学体验
现代数据科学需要通过相应的技能完成各种任务,包括数据处理与可视化、编码、模型部署和大型数据集管理。 作为集成开发环境 (IDE),PyCharm 可以帮助您高效构建此技能组合。 它提供了智能编码辅助、顶层调试、版本控制、集成数据库管理和无缝 Docker 集成。 对于数据科学,PyCharm 支持 Jupyter Notebook,以及重要的科学和机器学习库,并与 Hugging Face 模型库、Anaconda 和 Databricks 等工具集成。
立即开始为您的数据科学项目使用 PyCharm 并体验其最新改进,包括用于检查 pandas 和 Polars DataFrame 的功能,以及用于逐层检查 PyTorch 张量的功能,此功能在探索数据和构建深度学习模型时非常有用。
本博文英文原作者: