在neo4j中,Neo4j Graph Algorithms ,通过call algo.list() 可查看neo4j中的算法列表。
在neo4j官方文档中,主要记录如下各种方法:
一. 中心性算法(Centrality algorithms)
中心度算法主要用来判断一个图中不同节点的重要性:
- PageRank(页面排名算法,algo.pageRank),pagerank值越高的实体在网络中起到的作用越大;
- ArticleRank(文档排名算法,algo.articleRank),pagerank的一种变体,平衡了出度高低对重要性的影响;
- Betweenness Centrality(中介中心性,algo.betweenness),检测节点对图中信息流影响程度的方法;
- Closeness Centrality(紧密中心性,algo.closeness),度量它与其他节点的距离,紧密程度;
- Harmonic Centrality(调和中心性,algo.closseness),是紧密中心性算法的一种变体,用于解决不连通图的问题;
- Eigenvecor Centrality (特征向量中心性,algo.eigenvector),度量节点间传递影响或连接性的算法;
- Degree Centrality(度中心性,algo.degree),用实体出边或入边的数量衡量实体在网络中的重要性;
二. 社区发现算法(Community detection algorithms)
评估一个群体是如何聚集或划分的,以及其增强或分裂的趋势:
- Louvain(鲁汶算法,algo.louvain),一种用模块度衡量的社区发现算法;
- Label Propagation(标签传播算法,algo.labelPropagagtion),无监督的社区发现算法;
- Connected Components(连通组件算法,algo.unionFind),用于检测网络中的联通组件;
- Strongly Connected Compontents(强连通组件,algo.scc),用于检测网络中存在的强联通组件(关系存在双边结构);
- Triangle Counting/Clustering Coefficient(三角计数/聚类系数,algo.triangleCount),用于衡量实体或网络中的局部聚集程度;
- Balanced Triads(平衡三角算法,algo.balancedTriads)
三. 路径寻找算法(Path Finding algorithms)
用于找到最短路径,或者评估路径的可用性和质量:
- Minimum Weight Spanning Tree(最小权重生成树,algo.mst),从一个给定的节点开始,找到它的所有可达节点以及用最小权值将节点连接在一起的一组关系;
- Shortest Path(最短路径,algo.shortestPath),用于计算两个实体之间的最短路径;
- Single Source Shortesr Path(单源最短路径,algo.shortestPath.deltastepping)
- All Pairs Shortest Path (全节点对最短路径,algo.allShortestPath)
- A* (A star, algo.shortestPath.astar)
- Yen’s K-shortest paths(Yen k最短路径,algo.kShortestPaths)
- Random Walk(随机路径,algo.randomWalk)
四.相似度算法(Similarity algorithms)
用于计算节点间的相似度:
- Jaccard Similarity(Jaccard相似度,algo.similarity.jaccard)
- Consine Similarity(余弦相似度,algo.similarity.consine)
- Pearson Similarity(Pearson相似度,algo.similarity.pearson)
- Euclidean Distance(欧式距离,algo.similarity.euclidean)
- Overlap Similarity(重叠相似度,algo.similarity.overlap)
五.链接预测算法(Link Prediction algorithms)
下面算法有助于确定一对节点的紧密程度。然后,我们将使用计算的分数作为链接预测解决方案的一部分:
- Adamic Adar(algo.linkprediction.adamicAdar),是一种基于节点共享邻居计算节点亲密度的方法;
- Common Neighbors(相同邻居,algo.linkprediction.commonNeighbors
- Preferential Attachment(择优连接,algo.linkprediction.preferentialAttachment
- Resource Allocation(资源分配,algo.linkprediction.resourceAllocation)
- Same Community(相同社区,algo.linkprediction.sameCommunity),确认两个节点是否属于同一个社区;
- Total Neighbors(总邻居,algo.linkprediction.totalNeighbors),基于它们拥有的唯一邻居的数量;
六.预处理算法(Preprocessing functions and procedures)
数据处理过程:
- One Hot Encoding (algo.ml.oneHotEncoding)