Neo4J入门笔记[2]---Neo4J GDS 图数据科学库

Posted 大象无形,大音希声

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Neo4J入门笔记[2]---Neo4J GDS 图数据科学库相关的知识,希望对你有一定的参考价值。

Neo4J 提供了GDS的库,里面包括了很多算法。GDS的英语全称是Graph Data Science(图数据科学库),其句法流程如下:

stream
Returns the result of the algorithm as a stream of records.

stats
Returns a single record of summary statistics, but does not write to the Neo4j database.

mutate
Writes the results of the algorithm to the projected graph and returns a single record of summary statistics.

write
Writes the results of the algorithm to the Neo4j database and returns a single record of summary statistics.

其提供的算法分成了下面8个种类。

  • Centrality 中心性算法
    中心性算法用于确定网络中不同节点的重要性

  • Community detection 社区探测算法
    社区检测算法用于评估节点组如何聚类或分区,以及它们加强或分裂的趋势

  • Similarity 相似性算法
    相似度算法根据节点对的邻域或属性计算节点对的相似度。
    可以使用几个相似性度量来计算相似性分数

  • Path finding 路径发现算法
    路径查找算法查找两个或多个节点之间的路径或评估路径的可用性和质量

  • Node embeddings 节点嵌套算法
    节点嵌入算法计算图中节点的低维向量表示。这些向量,也称为嵌入,可用于机器学习.

  • Topological link prediction 拓扑链路预测算法
    链路预测算法使用图的拓扑结构帮助确定一对节点的接近度。然后可以使用计算出的分数来预测它们之间的新关系

  • Auxiliary procedures 辅助流程算法
    辅助程序是可以在您的工作流程中使用的额外工具。

  • Pregel API
    Pregel 是一种以顶点为中心的计算模型,可通过用户定义的计算函数定义您自己的算法

默认情况下GDS库是没有安装的。如果需要安装,其安装步骤如下:
(1)需要GDS的仓库里面 然后复制到 N E O 4 J H O M E / p l u g i n s 目 录 下 。 ( 2 ) 在 NEO4J_HOME/plugins 目录下。 (2)在 NEO4JHOME/plugins(2NEO4J_HOME/conf/neo4j.conf文件里面修改下面的配置

dbms.security.procedures.unrestricted=gds.*
dbms.security.procedures.allowlist=gds.*

(3)重新启动Neo4J服务器
(4) 输入下面的命令进行验证

RETURN gds.version()

(5)查看其提供的函数

CALL gds.list()
[
  
    "name": "gds.allShortestPaths.delta.mutate",
    "description": "The Delta Stepping shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph. The computation is run multi-threaded",
    "signature": "gds.allShortestPaths.delta.mutate(graphName :: STRING?, configuration =  :: MAP?) :: (relationshipsWritten :: INTEGER?, mutateMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.mutate.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.delta.mutate.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.stats",
    "description": "The Delta Stepping shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph. The computation is run multi-threaded",
    "signature": "gds.allShortestPaths.delta.stats(graphName :: STRING?, configuration =  :: MAP?) :: (postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.stats.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.delta.stats.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.stream",
    "description": "The Delta Stepping shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph. The computation is run multi-threaded",
    "signature": "gds.allShortestPaths.delta.stream(graphName :: STRING?, configuration =  :: MAP?) :: (index :: INTEGER?, sourceNode :: INTEGER?, targetNode :: INTEGER?, totalCost :: FLOAT?, nodeIds :: LIST? OF INTEGER?, costs :: LIST? OF FLOAT?, path :: PATH?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.stream.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.delta.stream.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.write",
    "description": "The Delta Stepping shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph. The computation is run multi-threaded",
    "signature": "gds.allShortestPaths.delta.write(graphName :: STRING?, configuration =  :: MAP?) :: (relationshipsWritten :: INTEGER?, writeMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.delta.write.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.delta.write.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.mutate",
    "description": "The Dijkstra shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph.",
    "signature": "gds.allShortestPaths.dijkstra.mutate(graphName :: STRING?, configuration =  :: MAP?) :: (relationshipsWritten :: INTEGER?, mutateMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.mutate.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.dijkstra.mutate.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.stream",
    "description": "The Dijkstra shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph.",
    "signature": "gds.allShortestPaths.dijkstra.stream(graphName :: STRING?, configuration =  :: MAP?) :: (index :: INTEGER?, sourceNode :: INTEGER?, targetNode :: INTEGER?, totalCost :: FLOAT?, nodeIds :: LIST? OF INTEGER?, costs :: LIST? OF FLOAT?, path :: PATH?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.stream.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.dijkstra.stream.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.write",
    "description": "The Dijkstra shortest path algorithm computes the shortest (weighted) path between one node and any other node in the graph.",
    "signature": "gds.allShortestPaths.dijkstra.write(graphName :: STRING?, configuration =  :: MAP?) :: (relationshipsWritten :: INTEGER?, writeMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.allShortestPaths.dijkstra.write.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.allShortestPaths.dijkstra.write.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.allShortestPaths.stream",
    "description": "The All Pairs Shortest Path (APSP) calculates the shortest (weighted) path between all pairs of nodes.",
    "signature": "gds.alpha.allShortestPaths.stream(graphName :: STRING?, configuration =  :: MAP?) :: (sourceNodeId :: INTEGER?, targetNodeId :: INTEGER?, distance :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.backup",
    "description": "The back-up procedure persists graphs and models to disk",
    "signature": "gds.alpha.backup(configuration =  :: MAP?) :: (graphName :: STRING?, modelName :: STRING?, backupTime :: DATETIME?, exportPath :: STRING?, exportMillis :: INTEGER?, status :: STRING?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.closeness.harmonic.stream",
    "description": "Harmonic centrality is a way of detecting nodes that are able to spread information very efficiently through a graph.",
    "signature": "gds.alpha.closeness.harmonic.stream(graphName :: STRING?, configuration =  :: MAP?) :: (nodeId :: INTEGER?, centrality :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.closeness.harmonic.write",
    "description": "Harmonic centrality is a way of detecting nodes that are able to spread information very efficiently through a graph.",
    "signature": "gds.alpha.closeness.harmonic.write(graphName :: STRING?, configuration =  :: MAP?) :: (nodes :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, writeMillis :: INTEGER?, writeProperty :: STRING?, centralityDistribution :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.conductance.stream",
    "description": "Evaluates a division of nodes into communities based on the proportion of relationships that cross community boundaries.",
    "signature": "gds.alpha.conductance.stream(graphName :: STRING?, configuration =  :: MAP?) :: (community :: INTEGER?, conductance :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.config.defaults.list",
    "description": "List defaults; global by default, but also optionally for a specific user and/ or key",
    "signature": "gds.alpha.config.defaults.list(parameters =  :: MAP?) :: (key :: STRING?, value :: ANY?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.config.defaults.set",
    "description": "Set a default; global by, default, but also optionally for a specific user",
    "signature": "gds.alpha.config.defaults.set(key :: STRING?, value :: ANY?, username = d81eb72e-c499-4f78-90c7-0c76123606a2 :: STRING?) :: VOID",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.config.limits.list",
    "description": "List limits; global by default, but also optionally for a specific user and/ or key",
    "signature": "gds.alpha.config.limits.list(parameters =  :: MAP?) :: (key :: STRING?, value :: ANY?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.config.limits.set",
    "description": "Set a limit; global by, default, but also optionally for a specific user",
    "signature": "gds.alpha.config.limits.set(key :: STRING?, value :: ANY?, username = d81eb72e-c499-4f78-90c7-0c76123606a2 :: STRING?) :: VOID",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.create.cypherdb",
    "description": "Creates a database from a GDS graph.",
    "signature": "gds.alpha.create.cypherdb(dbName :: STRING?, graphName :: STRING?) :: (dbName :: STRING?, graphName :: STRING?, createMillis :: INTEGER?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.graph.graphproperty.drop",
    "description": "Removes a graph property from a projected graph.",
    "signature": "gds.alpha.graph.graphProperty.drop(graphName :: STRING?, graphProperty :: STRING?, configuration =  :: MAP?) :: (graphName :: STRING?, graphProperty :: STRING?, propertiesRemoved :: INTEGER?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.graph.graphProperty.stream",
    "description": "Streams the given graph property.",
    "signature": "gds.alpha.graph.graphProperty.stream(graphName :: STRING?, graphProperty :: STRING?, configuration =  :: MAP?) :: (propertyValue :: ANY?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.graph.sample.rwr",
    "description": "Constructs a random subgraph based on random walks with restarts",
    "signature": "gds.alpha.graph.sample.rwr(graphName :: STRING?, fromGraphName :: STRING?, configuration =  :: MAP?) :: (fromGraphName :: STRING?, startNodeCount :: INTEGER?, graphName :: STRING?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, projectMillis :: INTEGER?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.mutate",
    "description": "Hyperlink-Induced Topic Search (HITS) is a link analysis algorithm that rates nodes",
    "signature": "gds.alpha.hits.mutate(graphName :: STRING?, configuration =  :: MAP?) :: (nodePropertiesWritten :: INTEGER?, ranIterations :: INTEGER?, didConverge :: BOOLEAN?, mutateMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.mutate.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.hits.mutate.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.stats",
    "description": "Hyperlink-Induced Topic Search (HITS) is a link analysis algorithm that rates nodes",
    "signature": "gds.alpha.hits.stats(graphName :: STRING?, configuration =  :: MAP?) :: (ranIterations :: INTEGER?, didConverge :: BOOLEAN?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.stats.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.hits.stats.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.stream",
    "description": "Hyperlink-Induced Topic Search (HITS) is a link analysis algorithm that rates nodes",
    "signature": "gds.alpha.hits.stream(graphName :: STRING?, configuration =  :: MAP?) :: (nodeId :: INTEGER?, values :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.stream.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.hits.stream.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.write",
    "description": "Hyperlink-Induced Topic Search (HITS) is a link analysis algorithm that rates nodes",
    "signature": "gds.alpha.hits.write(graphName :: STRING?, configuration =  :: MAP?) :: (nodePropertiesWritten :: INTEGER?, ranIterations :: INTEGER?, didConverge :: BOOLEAN?, writeMillis :: INTEGER?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.hits.write.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.hits.write.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.influenceMaximization.greedy.stream",
    "description": "The Greedy algorithm aims to find k nodes that maximize the expected spread of influence in the network.",
    "signature": "gds.alpha.influenceMaximization.greedy.stream(graphName :: STRING?, configuration =  :: MAP?) :: (nodeId :: INTEGER?, spread :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.mutate",
    "description": "The Kmeans  algorithm clusters nodes into different communities based on Euclidean distance",
    "signature": "gds.alpha.kmeans.mutate(graphName :: STRING?, configuration =  :: MAP?) :: (mutateMillis :: INTEGER?, nodePropertiesWritten :: INTEGER?, communityDistribution :: MAP?, centroids :: LIST? OF LIST? OF FLOAT?, averageDistanceToCentroid :: FLOAT?, averageSilhouette :: FLOAT?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.mutate.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.kmeans.mutate.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.stats",
    "description": "Executes the algorithm and returns result statistics without writing the result to Neo4j.",
    "signature": "gds.alpha.kmeans.stats(graphName :: STRING?, configuration =  :: MAP?) :: (communityDistribution :: MAP?, centroids :: LIST? OF LIST? OF FLOAT?, averageDistanceToCentroid :: FLOAT?, averageSilhouette :: FLOAT?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.stats.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.kmeans.stats.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.stream",
    "description": "The Kmeans  algorithm clusters nodes into different communities based on Euclidean distance",
    "signature": "gds.alpha.kmeans.stream(graphName :: STRING?, configuration =  :: MAP?) :: (nodeId :: INTEGER?, communityId :: INTEGER?, distanceFromCentroid :: FLOAT?, silhouette :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.stream.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.kmeans.stream.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.write",
    "description": "The Kmeans  algorithm clusters nodes into different communities based on Euclidean distance",
    "signature": "gds.alpha.kmeans.write(graphName :: STRING?, configuration =  :: MAP?) :: (writeMillis :: INTEGER?, nodePropertiesWritten :: INTEGER?, communityDistribution :: MAP?, centroids :: LIST? OF LIST? OF FLOAT?, averageDistanceToCentroid :: FLOAT?, averageSilhouette :: FLOAT?, postProcessingMillis :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.kmeans.write.estimate",
    "description": "Returns an estimation of the memory consumption for that procedure.",
    "signature": "gds.alpha.kmeans.write.estimate(graphNameOrConfiguration :: ANY?, algoConfiguration :: MAP?) :: (requiredMemory :: STRING?, treeView :: STRING?, mapView :: MAP?, bytesMin :: INTEGER?, bytesMax :: INTEGER?, nodeCount :: INTEGER?, relationshipCount :: INTEGER?, heapPercentageMin :: FLOAT?, heapPercentageMax :: FLOAT?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.knn.filtered.mutate",
    "description": "The k-nearest neighbor graph algorithm constructs relationships between nodes if the distance between two nodes is among the k nearest distances compared to other nodes. KNN computes distances based on the similarity of node properties. Filtered KNN extends this functionality, allowing filtering on source nodes and target nodes, respectively.",
    "signature": "gds.alpha.knn.filtered.mutate(graphName :: STRING?, configuration =  :: MAP?) :: (ranIterations :: INTEGER?, nodePairsConsidered :: INTEGER?, didConverge :: BOOLEAN?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, mutateMillis :: INTEGER?, postProcessingMillis :: INTEGER?, nodesCompared :: INTEGER?, relationshipsWritten :: INTEGER?, similarityDistribution :: MAP?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.knn.filtered.stats",
    "description": "Executes the algorithm and returns result statistics without writing the result to Neo4j.",
    "signature": "gds.alpha.knn.filtered.stats(graphName :: STRING?, configuration =  :: MAP?) :: (ranIterations :: INTEGER?, didConverge :: BOOLEAN?, nodePairsConsidered :: INTEGER?, preProcessingMillis :: INTEGER?, computeMillis :: INTEGER?, postProcessingMillis :: INTEGER?, nodesCompared :: INTEGER?, similarityPairs :: INTEGER?, similarityDistribution :: MAP?, configuration :: MAP?)",
    "type": "procedure"
  ,
  
    "name": "gds.alpha.knn.filtered.stream",
    "description": "The k-nearest neighbor graph algorithm constructs relationships between nodes if the distance between two nodes is among the k nearest distances compared to other nodes. KNN computes distances based on the similarity of node properties. Filtered KNN extends this functionality, allowing filtering on source nodes and t

以上是关于Neo4J入门笔记[2]---Neo4J GDS 图数据科学库的主要内容,如果未能解决你的问题,请参考以下文章

Neo4J入门笔记[2]---导出数据为CSV

Neo4J入门笔记

Neo4J入门笔记[1]---安装以及Cypher基本语法

Neo4j学习--简单入门

手把手教你快速入门知识图谱 - Neo4J教程

Neo4j图数据库从入门到精通