Neo4j 数据科学
简介
以原生图数据库为核心,Neo4j 提供了 Neo4j Graph Data Science (GDS) —— 一个专为分析师和数据科学家打造的图算法库。
该库包含用于社群检测、中心度分析、节点相似度、路径查找和链路预测的算法。图数据科学 (GDS) 旨在支持图数据上的数据科学工作流和机器学习任务。
在 Neo4j GDS 中,典型的工作流如下:
-
从 Neo4j 数据库读取图数据。
-
创建图投影 (Graph Projection) —— 将数据加载到内存图 (in-memory graph) 中。
-
在投影上运行图算法。
-
将结果写回投影图和/或 Neo4j 数据库。
要了解更多关于 GDS 库的功能,请前往 官方文档。
设置环境
开始使用 Neo4j GDS 有多种选择。您可以选择自托管版本或完全托管的云版本。
-
Neo4j AuraDS 是一款完全托管的云服务数据科学解决方案,它将机器学习平台和图数据库统一到一个工作空间中。AuraDS 文档 详细介绍了其功能并提供了使用示例。
-
如果您倾向于使用本地部署方案,您可以:
-
在 Neo4j Desktop(用于操作 Neo4j 的客户端应用程序)中将 GDS 安装为插件;
-
从 Neo4j 下载中心 下载
neo4j-graph-data-science-[版本号].zip,并遵循 Neo4j GDS 库手册 → Neo4j 服务器 中的说明进行安装; -
如果您在 Docker 容器中运行 Neo4j,可以将 GDS 库配置为 Neo4j Docker 插件。
GDS 提供两个版本:社区版 (Community) 和企业版 (Enterprise)。要比较它们的功能,请访问 Neo4j 定价 页面。
请注意,GDS 库必须与 Neo4j 版本兼容。在安装 GDS 库之前,请查阅 Neo4j GDS 手册 → 支持的 Neo4j 版本 中的兼容性矩阵。
如果您在集群中运行 Neo4j,可以按照与 Neo4j 服务器相同的说明进行操作,并参考 一些额外的注意事项。
-
-
如果您是图技术和 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,可以使用名为 graphdatascience 的 GDS Python 客户端 包。它允许用户编写纯 Python 代码来投影图、运行算法、使用机器学习流水线以及使用 GDS 训练机器学习模型。为了避免与服务器端 GDS 库命名混淆,我们将 Neo4j GDS 客户端称为 GDS Python 客户端。
-
要导入并设置 GDS Python 客户端,请遵循 GDS 客户端手册 → 入门指南 中的说明。
-
要安装 GDS Python 客户端,请运行:
pip install graphdatascience -
请记住 GDS Python 客户端、Neo4j Python 驱动程序和服务器端 GDS 库安装之间的兼容性要求。请在 GDS 客户端手册 中查看这些要求。
-
如果您在 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) 系列回答了许多问题,并提供了深刻见解。