发布于 2026-01-06 1 阅读
0

来自 2021 年 DEV 全球展示挑战赛的数据科学工具集摘要,由 Mux 呈现:展示你的项目!

2021年数据科学工具集概述

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

2021年即将结束,让我们回顾一下数据专业人士在过去一年中使用过的各种工具。我这里所说的“数据专业人士”指的是所有与数据相关的职位,例如数据科学家、数据分析师和数据工程师。要成为一名优秀的数据专业人士,我们需要掌握不同领域的知识,但最重要的技能包括:数据库和SQL知识、Python、R、Julia、JavaScript等编程语言、Tableau和Power BI等数据可视化工具的使用经验,以及大数据和云计算技术方面的知识。

在这篇文章中,我将列出数据专业人士在过去一年中广泛使用的各种工具和技术,掌握这些工具和技术能让你成为业内顶尖人才。这份清单基于Kaggle(最大的数据科学家社区)开展的一项调查。我使用“工具集”一词,是因为它涵盖了来自不同领域的各种工具。

集成开发环境

数据科学领域最常用的语言包括 Python、R、JavaScript、MATLAB、Julia 和 SQL。这些语言用于数据分析和可视化、构建机器学习算法、实现数据管道以及其他各种与数据科学相关的任务。我们最重要的工具是集成开发环境 (IDE),在 IDE 中编写代码、编译代码并执行以查看输出结果。以下列出了数据专业人员在开发过程中最常用的 IDE,它们极大地简化了他们的工作。

  • Jupyter Notebook ——Jupyter Notebook是一个基于Web的交互式计算环境,用于创建Jupyter笔记本文档。它支持多种语言,例如Python(IPython)、Julia、R等,广泛用于数据分析、数据可视化以及其他交互式探索性计算。

  • Visual Studio Code(VS Code)是一款由微软开发的源代码编辑器,支持 Windows、Linux 和 macOS 系统。它提供调试、语法高亮、智能代码补全、代码片段、代码重构和内置 Git 等功能。VS Code 支持多种编程语言,凭借其丰富的功能,也是软件工程师最常用的集成开发环境 (IDE) 之一。

  • Jupyter Lab ——JupyterLab 是新一代用户界面,包含笔记本功能。它采用模块化结构,允许您在同一窗口中以标签页的形式打开多个笔记本或文件(例如 HTML、文本、Markdown 等)。它提供更接近集成开发环境 (IDE) 的使用体验。

  • PyCharm ——PyCharm是一款专为Python语言设计的集成开发环境(IDE),由捷克公司JetBrains开发。它提供代码分析、图形化调试器、集成单元测试器、版本控制系统集成,并支持使用Django进行Web开发以及使用Anaconda进行数据科学开发。PyCharm是跨平台的,拥有Windows、macOS和Linux版本。

  • R Studio ——R 语言的集成开发环境 (IDE),R 语言是一种用于统计计算、数据科学和数据可视化的编程语言。它有两种版本:RStudio Desktop 是一个常规的桌面应用程序,而 RStudio Server 则运行在远程服务器上,允许用户通过 Web 浏览器访问 RStudio。

  • Spyder ——Spyder 是一个开源的跨平台 IDE,用于 Python 语言的科学编程。Spyder 集成了 Python 科学计算栈中的许多知名软件包,包括 NumPy、SciPy、Matplotlib、pandas、IPython、SymPy 和 Cython,以及其他开源软件。

  • Notepad++ ——Notepad++是一款适用于Microsoft Windows的文本和源代码编辑器。它支持标签式编辑,允许在单个窗口中处理多个打开的文件。

  • Sublime Text 是一款商业源代码编辑器。它原生支持多种编程语言和标记语言。用户可以通过插件扩展其功能,这些插件通常由社区构建和维护,并遵循自由软件许可协议。为了方便插件开发,Sublime Text 提供了一个 Python API。

  • Vim 或 Emacs ——Vim 是一款免费开源的基于屏幕的 Unix 文本编辑器程序。Emacs 或 EMACS(Editor MACroS,编辑器宏)是一系列文本编辑器,其特点是可扩展性强。最广泛使用的版本GNU Emacs 的手册将其描述为“可扩展、可定制、自文档化、实时显示的编辑器”。这两款编辑器均用于基于 UNIX 和 LINUX 的系统,并且是最古老的文本编辑器之一。

  • MATLAB ——MATLAB是由MathWorks公司开发的专有多范式编程语言和数值计算环境。MATLAB支持矩阵运算、函数和数据绘图、算法实现、用户界面创建以及与其他语言编写的程序进行交互。

算法

机器学习是数据科学不可或缺的一部分,它在我们日常生活中的应用令人着迷,例如自动驾驶汽车、机器人和能说一口流利人类语言的人工智能助手、癌症等疾病的检测、人脸识别等等。所有这些都离不开数据以及处理这些数据的机器学习算法。以下列出了数据科学家最常用的机器学习算法。这些算法种类繁多,从回归和决策树等最基础的算法到Transformer、GAN和RNN等高级深度学习算法,应有尽有。

  • 线性回归和逻辑回归——这是机器学习生态系统中最基础的算法。几乎所有数据科学家都将这两种算法作为他们学习的首批机器学习算法。线性回归算法本质上是一种曲线拟合算法,用于确定趋势并根据自变量预测因变量的值。逻辑回归用于分类任务,并计算类别的概率。

  • 决策树或随机森林——决策树是另一种流行的机器学习算法,它基于某些决策来定义可能的后果。它可用于分类和回归任务。它是一种集成技术,将多个不同的决策树组合起来以给出输出。对于分类任务,随机森林的输出是大多数决策树选择的类别。对于回归任务,则返回各个决策树预测结果的均值或平均值。

  • 梯度提升机——梯度提升是一种机器学习技术,广泛应用于回归和分类等任务。它通过集成多个弱预测模型(通常是决策树)来构建预测模型。

  • 卷积神经网络——卷积神经网络(CNN)是一类人工神经网络,最常用于分析视觉图像。它们在图像和视频识别、推荐系统、图像分类、图像分割、医学图像分析、自然语言处理、脑机接口和金融时间序列等领域均有应用。CNN是多层感知器的正则化版本。

  • 贝叶斯方法- 贝叶斯推断是一种统计推断方法,它利用贝叶斯定理,随着更多证据或信息的出现,更新假设的概率。

  • 密集神经网络——这是另一类深度连接的神经网络,这意味着密集层中的每个神经元都接收来自其前一层所有神经元的输入。密集层是模型中最常用的层。

  • 循环神经网络——循环神经网络(RNN)是一种神经网络,它将前一步的输出作为当前步骤的输入。由于其内部记忆机制,它是第一个能够记住输入的算法,这使得它非常适合处理序列数据的机器学习问题。RNN架构的不同变体包括双向循环神经网络(BRNN)、长短期记忆网络(LSTM)和门控循环单元(GRU)。

  • Transformer网络——Transformer是一种深度学习模型,它采用注意力机制,对输入数据的每个部分赋予不同的权重。它主要用于自然语言处理(NLP)和计算机视觉(CV)领域。与循环神经网络(RNN)类似,Transformer旨在处理序列输入数据,例如自然语言,用于翻译和文本摘要等任务。一些著名的Transformer架构包括BERT和GPT。

  • 生成对抗网络(GAN)是一种利用深度学习方法(例如卷积神经网络)进行生成建模的方法。生成建模是机器学习中的一种无监督学习任务,它能够自动发现并学习输入数据中的规律或模式,从而使模型能够生成或输出看似来自原始数据集的新样本。GAN 模型架构包含两个子模型:生成器模型用于生成新样本,判别器模型用于区分生成的样本是来自真实领域还是由生成器模型生成的虚假样本。

  • 进化算法——进化算法是一种基于启发式的方法,用于解决那些难以在多项式时间内解决的问题,例如经典的NP难问题,以及其他任何需要耗费过长时间才能穷举解决的问题。遗传算法是最常见的进化算法,它被用于优化神经网络和机器学习模型。

机器学习框架

许多框架是用多种语言(但大多是 Python)构建的,其中包含实现上述各种机器学习算法的代码。这些框架极大地简化了数据科学家的工作,他们只需调用一个简单的 Python 函数即可实现最复杂的机器学习算法,而无需深入了解其底层细节。以下列出了一些最知名的机器学习框架。

  • Scikit-learn是基于 Python 的数据科学任务中最广泛使用的框架之一。它包含各种分类、回归和聚类算法,例如支持向量机、随机森林、梯度提升、k-means 和 DBSCAN,并且旨在与 Python 的数值和科学计算库 NumPy 和 SciPy 互操作。
    链接:https://scikit-learn.org/

  • TensorFlow主要用于训练基于神经网络和深度学习的机器学习模型。它由 Google Brain 团队开发,供 Google 内部使用。TensorFlow 支持多种编程语言,尤其是 Python,以及 JavaScript、C++ 和 Java。这种灵活性使其适用于众多不同领域的各种应用。
    链接:https://www.tensorflow.org/

  • XGBoost是一个开源软件库,为 C++、Java、Python、R、Julia、Perl 和 Scala 提供正则化梯度提升框架。它在梯度提升框架下实现了机器学习算法。它提供了一种并行树提升(也称为 GBDT、GBM)算法,能够快速准确地解决许多数据科学问题。同一段代码可以在主流分布式环境(Hadoop、SGE、MPI)上运行,并能处理数十亿个样本的问题。
    链接: https: //xgboost.readthedocs.io/

  • Keras ——Keras是一个开源软件库,它为人工神经网络提供了一个Python接口。Keras作为TensorFlow库的接口。
    链接:https://keras.io/

  • PyTorch ——PyTorch 是一个基于 Torch 库的开源机器学习库,主要用于计算机视觉和自然语言处理等领域,主要由 Facebook 人工智能研究院开发。它是根据修改后的 BSD 许可证发布的免费开源软件。
    链接: https: //pytorch.org/

  • LightGBM ——LightGBM,全称为轻量级梯度提升机(Light Gradient Boosting Machine),是一个免费开源的分布式梯度提升框架,最初由微软开发,用于机器学习。它基于决策树算法,可用于排序、分类和其他机器学习任务。
    链接:https://lightgbm.readthedocs.io/

  • CatBoost ——CatBoost是由Yandex开发的开源软件库。它提供了一个梯度提升框架,与传统算法相比,它尝试使用置换驱动的方法来求解类别特征。
    链接:https ://catboost.ai/

  • Huggingface是一个用于构建基于 Transformer 的语言模型的开源库,广泛应用于自然语言处理领域。BERT、GPT 等大型语言模型都是使用该库实现的。
    链接:https://huggingface.co/

  • Prophet是由 Facebook 开发的时间序列预测库。Prophet 基于加性模型预测时间序列数据,该模型拟合非线性趋势,并考虑年度、周和日季节性以及节假日效应。它最适用于具有显著季节性效应且包含多个季度历史数据的时间序列。Prophet 对缺失数据和趋势变化具有鲁棒性,并且通常能够很好地处理异常值。
    链接:https://github.com/facebook/prophet

  • Caret ——caret 包(全称为 Classification And REgression Training,即分类与回归训练)是一组旨在简化预测模型创建流程的函数。该包包含用于以下用途的工具:数据分割、预处理、特征选择、使用重采样进行模型调优、变量重要性估计以及其他功能。
    链接:https://topepo.github.io/caret/

  • PyTorch Lightning 是一个开源的 Python 库,它为流行的深度学习框架 PyTorch 提供了一个高级接口。它是一个轻量级且高性能的框架,通过组织 PyTorch 代码,将研究与工程解耦,使深度学习实验更易于阅读和复现。它旨在创建可扩展的深度学习模型,这些模型可以轻松运行在分布式硬件上,同时保持模型与硬件无关。
    链接:https://www.pytorchlightning.ai/

  • Fast.ai——这是一个开源的深度学习库,名为 fastai(没有句点),基于 PyTorch。
    链接:https://www.fast.ai/

  • Tidymodels ——tidymodels框架是一系列基于tidyverse原则的建模和机器学习软件包的集合。它使用R语言构建。
    链接:https://www.tidymodels.org/

  • H2O-3 - H2O 是一个开源的、内存式的、分布式的、快速且可扩展的机器学习和预测分析平台,它允许您基于大数据构建机器学习模型,并轻松地在企业环境中实现这些模型的生产部署。
    链接:https ://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html

  • MXNet - Apache MXNet 是一个开源的深度学习软件框架,用于训练和部署深度神经网络。
    链接:https://mxnet.apache.org/versions/1.8.0/

  • JAX ——JAX 是可在 CPU、GPU 和 TPU 上运行的 NumPy,具备强大的自动微分功能,适用于高性能机器学习研究。JAX 融合了 Autograd 和 XLA,旨在为高性能机器学习研究提供更强大的支持。JAX 的全新之处在于,它使用 XLA 在 GPU 和 TPU 上编译和运行您的 NumPy 程序。
    链接:https://jax.readthedocs.io/en/latest/notebooks/quickstart.html

云数据存储产品

数据科学最重要的方面是数据,没有数据,一切都无从谈起。我们需要资源来存储数据。随着云计算技术的出现,数据存储和管理变得更加便捷高效。以下列表列出了来自谷歌、亚马逊和微软等科技巨头的最佳云数据存储产品。

企业机器学习工具

这些是大型商业组织使用的工具。

  • Amazon SageMaker - Amazon SageMaker 是一个云端机器学习平台,于 2017 年 11 月发布。SageMaker 使开发人员能够在云端创建、训练和部署机器学习模型。SageMaker 还使开发人员能够在嵌入式系统和边缘设备上部署机器学习模型。
    链接:https://aws.amazon.com/sagemaker/

  • Databricks ——Databricks是一家企业软件公司,由Apache Spark的创建者创立。该公司还创建了Delta Lake、MLflow和Koalas等开源项目,涵盖数据工程、数据科学和机器学习领域。
    链接:https://databricks.com/

  • Azure 机器学习工作室- Azure 机器学习工作室是 Azure 机器学习中的一个 Web 门户,其中包含用于项目创作和资产管理的低代码和无代码选项。
    链接 - https://studio.azureml.net/

  • Google Cloud Vertex AI ——Vertex AI 将用于构建机器学习的 Google Cloud 服务整合到一个统一的 UI 和 API 中。在 Vertex AI 中,您现在可以轻松地使用 AutoML 或自定义代码训练模型并进行比较,所有模型都存储在一个中央模型存储库中。这些模型现在可以部署到 Vertex AI 上的相同端点。
    链接:https://cloud.google.com/vertex-ai

  • DataRobot——这家总部位于波士顿的数据科学公司,让业务分析师无需掌握机器学习或编程知识即可构建预测分析模型。它利用自动化机器学习技术,在短时间内构建并部署精准的预测模型。
    链接:https://www.datarobot.com/

  • RapidMiner ——RapidMiner是由同名公司开发的数据科学软件平台,它提供了一个集成的环境,用于数据准备、机器学习、深度学习、文本挖掘和预测分析。
    链接:https://rapidminer.com/

  • Alteryx ——Alteryx 提供数百个无需代码或低代码的分析构建模块,帮助分析师更快地准备、混合和分析数据,从而实现高度可配置且可重复的工作流程。
    链接:https://www.alteryx.com/

  • Dataiku ——Dataiku 助力团队利用最新技术大规模创建和交付数据及高级分析。Dataiku 数据科学工作室 (DSS) 软件支持预测建模,可用于构建业务应用程序。
    链接:https://www.dataiku.com/

数据库产品

数据库对于数据科学至关重要,这份清单包含了SQL数据库、NoSQL数据库以及大数据相关的数据库产品。这些都是应用非常广泛的数据库。

机器学习实验工具

以下列表展示了用于机器学习可解释性的工具,例如 Tensorboard,它们可以帮助我们更好地理解机器学习算法。此外,它还包含一些用于机器学习操作流程 (MLOP) 的工具,例如 Weights and Biases、ClearML 和 Neptune.ai 等。这些工具用于衡量模型性能、记录日志、优化机器学习流程、自动化流程以及调整超参数。

自动化机器学习框架

自动化机器学习 (AutoML) 是指利用自动化技术将机器学习 (ML) 模型应用于实际问题的过程。更具体地说,它实现了机器学习模型的选择、组合和参数化过程的自动化。这些框架有助于实现 AutoML。传统机器学习的不同步骤包括数据预处理、特征工程、特征提取、特征选择、算法选择和超参数优化。AutoML 有助于自动化整个流程,并显著简化了非专业人员的操作步骤。

文章来源:https://dev.to/amananandrai/data-science-toolset-summary-from-2021-1dbi