Neo4j 数据科学

简介

以原生图数据库为核心,Neo4j 提供了 Neo4j Graph Data Science (GDS) —— 一个专为分析师和数据科学家打造的图算法库。

该库包含用于社群检测、中心度分析、节点相似度、路径查找和链路预测的算法。图数据科学 (GDS) 旨在支持图数据上的数据科学工作流和机器学习任务。

图算法通过 Cypher® 过程进行调用。Cypher 是由 Neo4j 创建的声明式图查询语言。有关 Cypher 的更多信息,请访问 Cypher 手册

在 Neo4j GDS 中,典型的工作流如下:

  • 从 Neo4j 数据库读取图数据。

  • 创建图投影 (Graph Projection) —— 将数据加载到内存图 (in-memory graph) 中。

  • 在投影上运行图算法。

  • 将结果写回投影图和/或 Neo4j 数据库。

要了解更多关于 GDS 库的功能,请前往 官方文档

设置环境

开始使用 Neo4j GDS 有多种选择。您可以选择自托管版本或完全托管的云版本。

  • Neo4j AuraDS 是一款完全托管的服务数据科学解决方案,它将机器学习平台和图数据库统一到一个工作空间中。AuraDS 文档 详细介绍了其功能并提供了使用示例

  • 如果您倾向于使用本地部署方案,您可以:

  • 如果您是图技术和 Neo4j 的初学者,GraphAcademy 课程 是一个很好的起点。它们免费、互动且注重实践。您可以选择专门为数据科学家设计的学习路径。

    此外,您还可以使用 Neo4j Sandbox 来学习图概念和 Cypher。

将 Neo4j GDS 集成到您的数据生态系统

减少数据流动过程中的阻力可以使产品的使用更加便捷。考虑到这一点,Neo4j 提供了多种 连接器、驱动程序和库,以便于数据集成:

  • GDS Python 客户端,可以直接从 Python 调用所有 Neo4j GDS 过程。

  • 数据仓库连接器,用于在 Snowflake、Google BigQuery、Amazon Redshift 或 Microsoft Azure Synapse Analytics 之间迁移数据。

  • BI 连接器,用于直接连接 Microsoft Power BI、Tableau 等 BI 工具。

GDS Python 客户端

如果您更偏好 Python,可以使用名为 graphdatascienceGDS Python 客户端 包。它允许用户编写纯 Python 代码来投影图、运行算法、使用机器学习流水线以及使用 GDS 训练机器学习模型。为了避免与服务器端 GDS 库命名混淆,我们将 Neo4j GDS 客户端称为 GDS Python 客户端

  1. 要导入并设置 GDS Python 客户端,请遵循 GDS 客户端手册 → 入门指南 中的说明。

  2. 要安装 GDS Python 客户端,请运行:

    pip install graphdatascience
  3. 请记住 GDS Python 客户端、Neo4j Python 驱动程序和服务器端 GDS 库安装之间的兼容性要求。请在 GDS 客户端手册 中查看这些要求。

  4. 如果您在 AuraDS 上使用 GDS Python 客户端,请运行以下命令:

    # Replace with the actual URI, username, and password
    AURA_CONNECTION_URI = "neo4j+s://xxxxxxxx.databases.neo4j.io"
    AURA_USERNAME = "neo4j"
    AURA_PASSWORD = "..."
    
    # Client instantiation
    gds = GraphDataScience(
        AURA_CONNECTION_URI,
        auth=(AURA_USERNAME, AURA_PASSWORD),
        aura_ds=True
    )

GDS Python 客户端的源代码可在 GitHub 上找到。

使用 Neo4j Bloom 进行数据可视化

数据可视化是数据科学工作流中必不可少的一部分。它不仅让数据专家能够分析海量信息,还能高效地呈现这些信息。数据可视化工具和技术可以影响数据驱动的决策。

Neo4j 提供了一种低代码可视化工具 —— Neo4j Bloom,旨在探索并动态可视化大型图数据。

有关如何将 Bloom 与 GDS 库结合使用的说明,请参阅 Neo4j Bloom 手册 → 图数据科学集成

图数据科学用例

您可以将图数据科学应用于各行各业,进行推荐、识别异常和欺诈者、加深客户理解以及优化供应链。

该文档提供了如何将 GDS 图算法应用于实际用例的指南。

  • GDS 客户端手册 → 教程 中,现成的 Jupyter Notebook 演示了 GDS Python 客户端的功能。

  • AuraDS 文档 中的使用示例展示了 GDS 工作流组件,并回答了关于如何评估内存使用情况、监控运行中算法的进度或如何共享机器学习模型等常见问题。

除了手册,您还可以从 Neo4j YouTube 频道 寻找信息。

“向数据科学家提问图相关问题” (Ask a Data Scientist about Graph) 系列回答了许多问题,并提供了深刻见解。