使用 Neo4j 进行数据科学
简介
以原生图数据库为核心,Neo4j 提供了 Neo4j 图数据科学 — 一个面向分析师和数据科学家的图算法库。
该库包含用于社区检测、中心性、节点相似性、路径查找和链接预测的算法。图数据科学 (GDS) 旨在支持您图上的数据科学工作流程和机器学习任务。
在 Neo4j GDS 中,典型的工作流程如下
-
从 Neo4j 数据库读取图数据。
-
创建图投影 — 将数据加载到内存中的图中。
-
在投影上运行图算法。
-
将结果写回投影图和/或 Neo4j 数据库。
要了解有关 GDS 库功能的更多信息,请访问 官方文档。
设置环境
有多种方法可以开始在 Neo4j 中使用 GDS。您可以选择自托管或完全托管的云版本。
-
Neo4j AuraDS 是一种完全托管的 云 服务,它将 ML 表面和图数据库统一到一个工作区中。 AuraDS 文档 详细介绍了其功能并提供了 使用示例。
-
如果您更喜欢使用本地解决方案,您可以
-
在 Neo4j 桌面版(用于处理 Neo4j 的客户端应用程序)中安装 GDS 作为插件,
-
从 Neo4j 下载中心 下载
neo4j-graph-data-science-[version].zip
,并按照 Neo4j GDS 库手册 → Neo4j 服务器 中的说明进行操作, -
如果您在 Docker 容器中运行 Neo4j,则可以将 GDS 库配置为 Neo4j Docker 插件。
提供两个 GDS 版本:社区版和企业版。要比较它们的功能,请访问 Neo4j 定价 页面。
请注意,GDS 库必须与 Neo4j 兼容。在安装 GDS 库之前,请查阅 Neo4j GDS 手册 → 受支持的 Neo4j 版本 中的兼容性矩阵。
如果您在集群中运行 Neo4j,则可以按照 Neo4j 服务器的相同说明进行操作,并 考虑一些其他事项。
-
-
如果您是图技术和 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 开发者,可以使用名为 graphdatascience
的 GDS Python 客户端 包。它使用户能够编写纯 Python 代码来投影图、运行算法、使用 ML 管道以及使用 GDS 训练 ML 模型。为了避免与服务器端 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 可运行笔记本展示了 GDS Python 客户端的功能。
-
在AuraDS 文档中的使用示例展示了 GDS 工作流组件,并回答了有关如何估算内存使用情况、监控正在运行的算法的进度或如何共享 ML 模型的常见问题。
除了手册外,您还可以查找Neo4j YouTube 频道上的信息。
向数据科学家提问关于图系列回答了许多问题并提供了重要的见解。