Coursera 笔记

Module 01 · Overview of Data Science Tools

Summary: Open Source Tools for Data Science数据科学开源工具总结

Coursera ↗

Duration: 20 mins  时长:20 分钟

Objective 目标

This reading provides a summary of key open-source tools for Data Science covered in the Part 1 and Part 2 videos of this course.
本阅读材料概述了本课程第一部分和第二部分视频中涵盖的关键开源数据科学工具。

They are broadly classified as -
它们被广泛分类为——

  • Data Management Tools - Facilitates the storage, organization, and retrieval of data. Includes Relational Databases, NoSQL Databases, and Big Data platforms.
    数据管理工具 - 促进数据的存储、组织和检索。包括关系数据库、NoSQL 数据库和大数据平台。
  • Data Integration and Transformation Tools - Streamlines data pipelines and automate data processing workflows. Task of data integration and transformation in the classic data warehousing world is to Extract, Transform, and Load (ETL).
    数据集成与转换工具 - 简化数据管道并自动化数据处理工作流。在经典数据仓库世界中,数据集成与转换的任务是提取、转换和加载(ETL)。
  • Data Visualization Tools- Provides graphical representation of data and assist with communicating insights.
    数据可视化工具 - 提供数据的图形化表示,并协助传达洞察。
  • Model Deployment, Monitoring and Assessment Tools- Supports the building, deploying, monitoring, and evaluation of data and machine learning models.
    模型部署、监控与评估工具 - 支持数据与机器学习模型的建设、部署、监控与评估。
  • Data Asset Management Tools- Organizes and manages data, enforce access controls, and ensure asset backups.
    数据资产管理工具 - 组织和管理数据,执行访问控制,并确保资产备份。
  • Code Development and Execution Tools - Provides environments for developing, testing, and deploying code, offering computational resources to execute it.
    代码开发与执行工具 - 提供用于开发、测试和部署代码的环境,提供计算资源来执行它。
  • Code Asset Management Tools - Enables the storage and management of code, track changes, and support collaborative development.
    代码资产管理工具 - 实现代码的存储和管理,跟踪变更,并支持协作开发。

Data Management Tools 数据管理工具

MySQL

  • Popular open source relational database management system (RDBMS)
    流行的开源关系型数据库管理系统(RDBMS)
  • Uses structured query language (SQL) to manage and store data.
    使用结构化查询语言(SQL)来管理和存储数据。
  • Common uses:  常见用途:
    • Web applications  Web 应用程序
    • Data warehousing  数据仓库
    • E-commerce  电子商务

PostgreSQL

  • Powerful and open source relational database management system (RDBMS)
    强大的开源关系型数据库管理系统(RDBMS)
  • Emphasizes extensibility and SQL compliance.
    强调可扩展性和 SQL 兼容性。
  • Offers advanced features such as:
    提供高级功能,例如:
    • Support for JSON  支持JSON
    • Full-text search  全文搜索
    • Spatial data  空间数据

Apache CouchDB

  • Document-oriented NoSQL database
    面向文档的 NoSQL 数据库
  • Uses JSON to store data
    使用JSON 来存储数据
  • Highly scalable  高度可扩展
  • Fault-tolerant  容错性
  • Easy to use  易于使用

MongoDB

  • Document-oriented NoSQL database
    面向文档的 NoSQL 数据库
  • Stores data in a flexible JSON
    以灵活的 JSON 格式存储数据
  • Provides:  提供:
    • Scalability  可扩展性
    • High availability  高可用性
    • Data distribution  数据分布
  • Suitable for modern web applications that handle large volumes of unstructured data
    适用于处理大量非结构化数据的现代 Web 应用程序

Apache Cassandra

  • Highly scalable, distributed Document-oriented NoSQL database
    高度可扩展的分布式文档型NoSQL 数据库
  • Can handle large amounts of structured and unstructured data across many commodity servers.
    能够处理分布在众多通用服务器上的大量结构化和非结构化数据。
  • Offers:  提供:
    • High availability  高可用性
    • Fault tolerance  容错能力
    • Tunable consistency levels
      可调一致性级别
  • Suitable for mission-critical applications
    适用于关键任务应用程序

Hadoop Distributed File System (HDFS) Hadoop 分布式文件系统(HDFS)

  • Designed to work with large datasets like Apache Hadoop in a distributed computing environment
    设计用于在分布式计算环境中与 Apache Hadoop 等大型数据集协同工作
  • High-throughput data processing by splitting files into blocks (default 128MB), and these blocks are distributed across multiple DataNodes
    通过将文件分割成块(默认 128MB)进行高吞吐量数据处理,这些块将分布到多个 DataNodes
  • Data is replicated across different DataNodes ensuring high availability and fault tolerance
    数据在不同 DataNodes 上进行复制,以确保高可用性和容错能力
  • Scalable and efficient  可扩展且高效

Ceph

  • Free, open source software-defined storage platform suitable for hybrid cloud environments
    免费、开源的软件定义存储平台,适用于混合云环境
  • Designed for modern data centers
    专为现代数据中心设计
  • Provides highly scalable, unified storage system that can be used for object storage (like AWS S3), block storage (like virtual disks for VMs), and file storage (like NFS) under one unified system
    提供高度可扩展的统一存储系统,可用于对象存储(如 AWS S3)、块存储(如虚拟机磁盘)和文件存储(如NFS),所有功能均在同一统一系统中实现
  • High performance, availability and reliability
    高性能、高可用性和高可靠性

Elasticsearch

  • Primarily a distributed RESTful search engine and analytics tool
    主要是一个分布式 RESTful 搜索引擎和分析工具
  • Based on the Lucene library.
    基于Lucene库。
  • Full-text search, real-time data analytics
    全文搜索,实时数据分析
  • Highly scalable  高度可扩展
  • Easy to use  易于使用
  • Powerful querying capabilities
    强大的查询功能
  • Real-time data indexing for fast document retrieval.
    实时数据索引,快速文档检索。

Data Integration and Transformation Tools 数据集成与转换工具

Apache Airflow

  • Open-source platform for programmatically authoring, scheduling, and monitoring workflows
    一个用于编程方式创建、调度和监控工作流的开放源代码平台
  • Created originally by Airbnb
    最初由 Airbnb 创建
  • Allows users to define and execute complex workflows
    允许用户定义和执行复杂的工作流
  • Support for:  支持:
    • Task dependencies  任务依赖
    • Parallelism  并行性
    • Error handling  错误处理

Kubeflow

  • An open-source machine learning toolkit that allows execution of data science pipelines on top of Kubernetes.
    一个开源机器学习工具包,允许在 Kubernetes 之上执行 data science 管道。
  • Provides a platform for building, deploying, and managing end-to-end machine learning workflows at scale
    为构建、部署和管理端到端机器学习工作流程提供平台
  • Support for:  支持:
    • Distributed training  分布式训练
    • Model serving  模型服务
    • Hyperparameter tuning  超参数调整

Apache Kafka

  • Distributed streaming platform that allows applications to publish, process, and subscribe to streams of records in real-time
    分布式流处理平台,允许应用程序实时发布、处理和订阅记录流
  • Created originally from LinkedIn.
    最初由 LinkedIn 创建。
  • It is scalable, fault-tolerant, and high-throughput
    具有可扩展性、容错性和高吞吐量
  • Suitable for building mission-critical, data-intensive applications
    适用于构建关键任务、数据密集型应用程序

Apache NiFi

  • An open-source data integration platform that allows users to automate the flow of data between systems
    一个开源的数据集成平台,允许用户在系统之间自动化数据流
  • Provides a web-based user interface for designing and managing data flows
    提供基于网络的用户界面,用于设计和管理数据流
  • Support for:  支持:
    • Data routing  数据路由
    • Transformation  转换
    • Enrichment  丰富
    • Among other capabilities  以及其他功能

Apache Spark SQL

  • A module in the Spark ecosystem that provides a programming interface for working with structured data using:
    Spark 生态系统中的一个模块,提供了使用以下方式处理结构化数据的编程接口:
    • SQL
    • Data frames  数据帧
    • Datasets  数据集
  • Supports a wide range of data sources and provides optimized performance for complex data processing tasks.
    支持多种数据源,并为复杂数据处理任务提供优化性能。

Node-RED

  • An open-source visual programming tool for wiring together hardware devices, APIs, and online services
    一个开源的可视化编程工具,用于连接硬件设备、API 和在线服务。
  • Allows users to create event-driven flows of messages
    允许用户创建基于事件的消息流程。
  • low in resource consumption that it even runs on tiny devices like a Raspberry Pi.
    资源消耗低,甚至可以在像树莓派这样的微型设备上运行。
  • Support for:  支持:
    • Data transformation  数据转换
    • Filtering  过滤
    • Aggregation  聚合

Data Visualization Tools 数据可视化工具

PixieDust

  • Open-source library for creating interactive, exploratory data visualizations in Python and Jupyter notebooks
    用于在 Python 和 Jupyter 笔记本中创建交互式、探索性数据可视化的开源库
  • Provides a range of built-in visualizations and data connectors
    提供一系列内置可视化工具和数据连接器
  • Support for customization and extensibility through third-party libraries
    通过第三方库实现定制化和可扩展性支持

Hue

  • Open-source web interface for analyzing and visualizing large datasets in Apache Hadoop
    Apache Hadoop 中用于分析和可视化大型数据集的开源 Web 界面
  • Offers a user-friendly experience for exploring data and creating visualizations
    为数据探索和可视化创建提供用户友好体验
  • No need for programming skills; can create visualizations from SQL queries
    无需编程技能;可从 SQL 查询创建可视化

Kibana

  • Open-source data visualization tool that allows users to interact with their data through a web-based interface
    开源数据可视化工具,允许用户通过基于网络的界面与其数据进行交互
  • Commonly used with Elasticsearch to analyze and visualize large datasets
    通常与 Elasticsearch 一起使用,用于分析和可视化大型数据集

Apache Superset

  • A modern, enterprise-ready business intelligence web application that makes it easy to visualize and explore large datasets
    一个现代的企业级商业智能网络应用程序,可轻松实现大型数据集的可视化和探索
  • Offers a rich set of data visualization options, including:
    提供丰富的数据可视化选项,包括:
    • Charts  图表
    • Tables  表格
    • Maps  地图
    • Geospatial analysis  地理空间分析
    • Real-time data processing
      实时数据处理

Model Deployment Tools 模型部署工具

Apache PredictionIO

  • Open-source machine learning server built on a scalable and distributed infrastructure
    基于可扩展和分布式基础设施构建的开源机器学习服务器
  • Allows developers to quickly build, evaluate, and deploy predictive engines for various use cases such as:
    允许开发人员快速构建、评估和部署各种用例(如:
    • Recommendation  推荐
    • Classification  分类
    • Clustering  聚类

Kubernetes

  • Open-source platform for container orchestration
    容器编排开源平台
  • Automatically launches, scales, and manages containerized applications
    自动启动、扩展和管理容器化应用程序
  • Offering features like:  提供以下功能:
    • Automatic scaling  自动扩展
    • Self-healing  自愈
    • Load balancing  负载均衡
  • Enables the management and orchestration of containers across numerous hosts
    能够在多个主机上管理和编排容器

Apache Seldon

  • Open-source platform for deploying and managing machine learning models on Kubernetes
    一个在 Kubernetes 上部署和管理机器学习模型的开放源代码平台
  • Provides a way to:  提供了一种方法:
    • Serve models at scale  大规模提供模型
    • Automate model deployment workflows
      自动化模型部署工作流
    • Monitor the performance of deployed models in real-time
      实时监控已部署模型的性能

MLeap

  • Open-source library for serializing and deserializing learning models in a cross-platform file
    用于跨平台文件序列化和反序列化学习模型的开源库
  • Gives users the ability to export models from different machine learning libraries and frameworks, such as:
    为用户提供从不同的机器学习库和框架中导出模型的能力,例如:
    • Spark
    • Scikit-learn
    • TensorFlow
  • Implements them in high-throughput, low-latency production environments
    在高通量、低延迟的生产环境中实现

TensorFlow Lite

  • Open-source tool for running machine learning models on mobile and embedded devices
    一种用于在移动设备和嵌入式设备上运行机器学习模型的开源工具
  • Allows effective inference on mobile and embedded platforms
    允许在移动和嵌入式平台上进行有效推理
  • Supports a variety of hardware accelerators such as:
    支持多种硬件加速器,包括:
    • CPUs  CPU
    • GPUs  GPU
    • Custom ASICs  定制 ASIC

Red Hat OpenShift

  • Container application framework based on Kubernetes
    基于 Kubernetes 的容器应用框架
  • With characteristics like automation, scalability, and security
    具有自动化、可扩展性和安全性等特征
  • Offers a method for creating, deploying, and managing containerized applications
    提供了一种创建、部署和管理容器化应用的方法

TensorFlow Serving

  • Open-source utility that serves machine learning models in real-world settings
    一种在现实环境中提供机器学习模型的开放源代码工具
  • Supports both HTTP and gRPC interfaces for serving predictions
    支持用于提供预测的 HTTP 和gRPC接口
  • Provides high scalability and low latency deployment and management of TensorFlow models
    提供高可扩展性和低延迟的 TensorFlow 模型部署和管理

TensorFlow.js

  • Open-source library for building and deploying machine learning models in JavaScript
    用于在 JavaScript 中构建和部署机器学习模型的开源库
  • Allows you to train and execute models directly in the browser or on Node.js
    允许您直接在浏览器或 Node.js 中训练和执行模型
  • Supports a wide range of model architectures, including neural networks, decision trees, and k-nearest neighbors
    支持多种模型架构,包括神经网络、决策树和 k 近邻

Model Monitoring and Assessment Tools 模型监控与评估工具

ModelDB

  • Open-source platform for managing machine learning models and experiments
    用于管理机器学习模型和实验的开源平台
  • Provides a way to track and reproduce experiments, version models, and collaborate with team members
    提供跟踪和重现实验、版本模型以及与团队成员协作的方式

Prometheus

  • Freely available monitoring system that collects and stores metrics in real-time from different sources
    一个可自由获取的监控系统,可实时从不同来源收集和存储指标
  • Allows you to visualize and set alerts on the health and performance of systems and apps
    允许您可视化系统及应用程序的健康状况和性能,并设置警报
  • Supports a variety of data gathering methods, such as HTTP endpoints, exporters, and agents
    支持多种数据收集方法,如 HTTP 端点、导出器和代理

IBM AI Fairness 360 IBM AI 公平性 360

  • Open-source toolkit for detecting and mitigating bias in machine learning models
    用于检测和减轻机器学习模型中偏见的开源工具包
  • Provides a way to measure the fairness and bias of models, as well as a set of algorithms for mitigating bias and creating fairer models
    提供了一种衡量模型公平性和偏见的方法,以及一套减轻偏见和创建更公平模型算法

IBM AI Explainability 360 IBM AI 可解释性 360

  • Open-source toolkit for explaining the behavior and decisions of machine learning models
    用于解释机器学习模型行为和决策的开源工具包
  • Provides a way to measure the explainability and interpretability of models, as well as a set of algorithms for generating explanations and visualizations of model behavior
    提供了一种衡量模型可解释性和可理解性的方法,以及一套用于生成模型行为解释和可视化的算法

IBM Adversarial Robustness 360 Toolbox IBM Adversarial Robustness 360 工具箱

  • Free and open-source library for protecting machine learning models from adversarial attacks
    用于保护机器学习模型免受对抗性攻击的自由开源库
  • Includes a method for measuring model robustness and vulnerability
    包含一种测量模型鲁棒性和脆弱性的方法
  • Includes a set of algorithms for improving model robustness and detecting adversarial examples
    包含一套提高模型鲁棒性和检测对抗性样本的算法

Code Development and Execution Tools 代码开发与执行工具

Jupyter IDE

  • Open-source effort  开源项目
  • Supports:  支持:
    • Julia
    • Python
    • R development with Jupyter Notebook
      使用 Jupyter Notebook 进行 R 开发
    • JupyterLab
    • JupyterHub
  • Create and share documents containing:
    创建和分享包含以下内容的文档:
    • Live code  实时代码
    • Equations  方程式
    • Visualizations  可视化
    • Narrative text  叙述文本
  • JupyterLab includes:  JupyterLab 包括:
    • Customized notebook organization
      个性化笔记本组织
  • JupyterHub extends all these capabilities to the enterprise
    JupyterHub 将所有这些功能扩展到企业

RStudio

  • For developers  为开发者
  • Free and open-source IDE  免费且开源的集成开发环境
  • Built to manage and execute R code
    专为管理和执行 R 代码而构建
  • Works on all platforms  适用于所有平台
  • Includes:  包含:
    • Version control  版本控制
    • Project management capabilities
      项目管理能力

Microsoft Visual Studio

  • An IDE that supports a variety of programming languages, including:
    一个支持多种编程语言的集成开发环境,包括:
    • C
    • C++
    • C++/CLI
    • Visual Basic.NET
    • C#
    • F#
    • JavaScript
    • TypeScript
    • XML
    • XSLT
    • HTML
    • CSS
  • Using plug-ins, supports:
    使用插件,支持:
    • Python
    • Ruby
    • Node.js
    • M
    • Other languages  其他语言

PyCharm

  • Primarily a subscription-based IDE environment
    主要基于订阅的 IDE 环境
  • Offers 16+ additional tools for coding assistance, testing, and web development
    提供 16 个以上的附加工具,用于编码辅助、测试和网页开发
  • Supports scientific development with IPython integration and Matplotlib and NumPy support
    支持科学开发,具有IPython集成和 Matplotlib 和 NumPy 支持
  • Also offers a free community-based, open-source IDE with limited capabilities
    还提供功能有限的免费社区版、开源 IDE

Spyder

  • Free, open-source Python-based IDE designed by and for scientists, engineers, and data analysts
    由科学家、工程师和数据分析师设计并使用的免费、开源的 Python IDE
  • Features a unique combination of comprehensive development tools for:
    具有独特的综合性开发工具组合,包括:
    • Advanced editing  高级编辑
    • Analysis  分析
    • Debugging  调试
    • Profiling  性能分析
    • Visualization capabilities
      可视化能力

Anaconda Navigator

  • Open-source GUI-based Navigator that supports Python development and integrates with:
    一个支持 Python 开发、基于图形用户界面的开源导航器,并与以下内容集成:
    • Eclipse and PyDev  Eclipse 和 PyDev
    • IDLE
    • IntelliJ
    • Microsoft Visual Studio Code (VS Code)
    • Ninja IDE
    • PyCharm
    • Python for Visual Studio Code
    • Python Tools for Visual Studio (PTVS)
    • Spyder
    • Sublime Text
    • Wing IDE

Code Asset Management Tools 代码资产管理工具

Git

  • Open-source version control system for tracking changes in code and collaboration among developers
    开源版本控制系统,用于跟踪代码变更和开发者协作
  • Provides a way to manage and organize code changes, collaborate on code development, and maintain a history of code revisions
    提供了一种管理和组织代码变更、协作代码开发以及维护代码修订历史的方法

GitLab

  • Web-based Git repository manager
    基于网络的 Git 代码仓库管理器
  • Provides a complete DevOps platform for:
    为以下方面提供完整的 DevOps 平台:
    • Source code management  源代码管理
    • Continuous integration and deployment
      持续集成与部署
    • Monitoring  监控
  • Enables teams to collaborate on:
    使团队能够协作:
    • Code development  代码开发
    • Automate build and deployment processes
      自动化构建和部署流程
    • Track metrics and performance across the entire software development lifecycle
      跟踪整个软件开发生命周期的指标和性能

GitHub

  • Web-based Git repository hosting service that provides a platform for developers to collaborate on code and manage software projects
    基于网络的 Git 存储库托管服务,为开发者提供协作代码和管理软件项目的平台
  • Enables users to:  使用户能够:
    • Create, fork, and contribute to open source projects
      创建、分支和为开源项目做贡献
    • Track changes in code  跟踪代码变更
    • Manage issues  管理问题
    • Pull requests  拉取请求

Bitbucket from Atlassian 来自 Atlassian 的 Bitbucket

  • Web-based Git repository hosting service
    基于网络的 Git 仓库托管服务
  • Provides a platform for developers to collaborate on code and manage software projects, with features like:
    为开发者提供协作编写代码和管理软件项目的平台,具有以下功能:
    • Pull requests  拉取请求
    • Code review  代码审查
    • Branch permissions  分支权限

Author(s) 作者

Shilpa Giridhar  希尔帕·吉里德哈尔