使用 Neo4j 进行数据科学

简介

以原生图数据库为核心,Neo4j 提供了 Neo4j 图数据科学 — 一个面向分析师和数据科学家的图算法库。

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

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

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

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

  • 创建图投影 — 将数据加载到内存中的图中。

  • 在投影上运行图算法。

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

要了解有关 GDS 库功能的更多信息,请访问 官方文档

设置环境

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

  • Neo4j AuraDS 是一种完全托管的 服务,它将 ML 表面和图数据库统一到一个工作区中。 AuraDS 文档 详细介绍了其功能并提供了 使用示例

  • 如果您更喜欢使用本地解决方案,您可以

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

    此外,您可以使用 Neo4j 沙盒 来学习图概念和 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 代码来投影图、运行算法、使用 ML 管道以及使用 GDS 训练 ML 模型。为了避免与服务器端 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 可运行笔记本展示了 GDS Python 客户端的功能。

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

除了手册外,您还可以查找Neo4j YouTube 频道上的信息。

向数据科学家提问关于图系列回答了许多问题并提供了重要的见解。