neo4j中心度算法(Centrality algorithm)-4.Eigenvector Centrality algorithm

一.特征向量中心度算法介绍:
    特征向量中心度算法是一个用来度量节点之间的传递影响和连通性的算法
    特征向量中心度算法是第一个考虑节点传递影响的中心度测量方法,而不是 考虑节点的直接重要性
    在特征向量中心度算法中,其认为与具有高得分的节点相连接比与具有低得分的节点相连接所得的贡献更大。
 
二.neo4j算法调用:

CALL algo.eigenvector(label:String, relationship:String,
{write: true, writeProperty:'eigenvector', concurrency:4})
YIELD nodes, loadMillis, computeMillis, writeMillis, write, writeProperty

三.实例:
创建节点及关系:

MERGE (home:Page {name:'Home'})
MERGE (about:Page {name:'About'})
MERGE (product:Page {name:'Product'})
MERGE (links:Page {name:'Links'})
MERGE (a:Page {name:'Site A'})
MERGE (b:Page {name:'Site B'})
MERGE (c:Page {name:'Site C'})
MERGE (d:Page {name:'Site D'})
MERGE (home)-[:LINKS]->(about)
MERGE (about)-[:LINKS]->(home)
MERGE (product)-[:LINKS]->(home)
MERGE (home)-[:LINKS]->(product)
MERGE (links)-[:LINKS]->(home)
MERGE (home)-[:LINKS]->(links)
MERGE (links)-[:LINKS]->(a)
MERGE (a)-[:LINKS]->(home)
MERGE (links)-[:LINKS]->(b)
MERGE (b)-[:LINKS]->(home)
MERGE (links)-[:LINKS]->(c)
MERGE (c)-[:LINKS]->(home)
MERGE (links)-[:LINKS]->(d)
MERGE (d)-[:LINKS]->(home)

neo4j中心度算法(Centrality algorithm)-4.Eigenvector Centrality algorithm_第1张图片
neo4j方法调用:

CALL algo.eigenvector.stream('Page', 'LINKS', {})
YIELD nodeId, score
RETURN algo.getNodeById(nodeId).name AS page,score
ORDER BY score DESC

所得结果:
neo4j中心度算法(Centrality algorithm)-4.Eigenvector Centrality algorithm_第2张图片
四.注意事项:
   一般的,特征向量中心度算法所得的值并不是归一化的,故我们我们可以在算法中加入normalization参数,此参数有三个选项。分别为:
   max: 所有分数除以最大分数
   l1norm:. .把分数标准化,使它们之和为1
   l2norm:每个分数的平方和除以平方根
具体算法调用:

CALL algo.eigenvector.stream('Page', 'LINKS', {normalization: "max"})
YIELD nodeId, score
RETURN algo.asNode(nodeId).name AS page,score
ORDER BY score DESC

你可能感兴趣的:(neo4j-图数据库,neo4j)