TrustRank
run API
- API
def run[VD: ClassTag](graph: Graph[VD, Double], seeds: RDD[VertexId], numIter: Int, resetProb: Double = 0.15): Graph[Double, Double]
- 功能描述
本算法模型基于Spark框架,根据指定的迭代次数,计算图中各结点TrustRank值,TrustRank值取值范围[0, 1]。本算法支持有向(无自环)有权图。
- API描述
- 包名:package org.apache.spark.graphx.lib.TrustRank
- 类名:TrustRank
- 方法名:run
- 输入:
- Graph[VD, ED]
- seeds:RDD[VertexId]
- 参数详情:
参数名称
取值类型
描述
graph
Graph[VD, Double],VD为泛型类型,表示输入图的结点属性类型,计算过程不感知;边属性为Double类型,取值范围为(0, 1]
GraphX图数据
seeds
为graph图中结点ID,Long型,要求seeds与graph图结点的交集大于0
种子结点序列
numIter
Int,取值范围:大于0
迭代次数
resetProb
Double,经验值0.15,取值范围:[0, 1]
重置系数
- 输出:Graph:Graph[Double, Double],结点属性存储该结点的TrustRank值,边属性存储源结点出度(权重)的倒数。
- 使用样例
val conf = new SparkConf().setAppName(“TrustRank”).setMaster(host) val sc = new SparkContext(conf) val edges = Array(Edge(1, 2, 1.0), Edge(1, 3, 1.0), Edge(1, 6, 1.0), Edge(2, 8, 1.0), Edge(3, 1, 1.0), Edge(3, 2, 1.0), Edge(3, 4, 1.0), Edge(3, 6, 1.0), Edge(3, 7, 1.0), Edge(3, 8, 1.0), Edge(4, 7, 1.0), Edge(4, 8, 1.0), Edge(5, 2, 1.0), Edge(5, 4, 1.0), Edge(5, 6, 1.0), Edge(5, 7, 1.0), Edge(5, 8, 1.0), Edge(6, 2, 1.0), Edge(6, 4, 1.0), Edge(6, 5, 1.0), Edge(6, 7, 1.0), Edge(6, 8, 1.0), Edge(7, 4, 1.0), Edge(7, 8, 1.0), Edge(7, 9, 1.0), Edge(7, 11, 1.0), Edge(8, 2, 1.0), Edge(8, 4, 1.0), Edge(8, 7, 1.0), Edge(8, 11, 1.0), Edge(9, 4, 1.0), Edge(9, 7, 1.0), Edge(9, 8, 1.0), Edge(9, 11, 1.0), Edge(10, 1, 1.0), Edge(10, 3, 1.0), Edge(10, 4, 1.0), Edge(10, 5, 1.0), Edge(11, 6, 1.0), Edge(11, 8, 1.0), Edge(11, 9, 1.0)) val seeds = sc.makeRDD[VertexId](Seq(1L), 1) val g = Graph.fromEdges(sc.parallelize(edges, 3), 1D) TrustRank.run (g, seeds, 100, 0.15)
- 样例结果:
Map(1 -> 0.15627260888438724,2 -> 0.11384457551621437,3 -> 0.04427723918390972, 6 -> 0.07702374399273665,8 -> 0.22576331655417478,4 -> 0.1071734894106,7 -> 0.12595647209080826, 5 -> 0.013094036478765229,9 -> 0.05101366004234638,11 -> 0.08558085784605747)
runUntilConvergence API
- API
def runUntilConvergence[VD: ClassTag](graph: Graph[VD, Double], seeds: RDD[VertexId], tol: Double, resetProb: Double = DEFAULT_RESET_PROB): Graph[Double, Double]
- 功能描述
本算法模型基于Spark框架,根据指定的收敛精度,计算图中各结点TrustRank值,TrustRank值取值范围[0,1]。本算法支持有向(无自环)有权图。
- API描述
- 包名:package org.apache.spark.graphx.lib.TrustRank
- 类名:TrustRank
- 方法名:runUntilConvergence
- 输入:
- Graph[VD, ED]
- seeds: RDD[VertexId]
- 参数详情:
参数名称
取值类型
描述
graph
Graph[VD, Double],VD为泛型类型,表示输入图的结点属性类型,计算过程不感知;边属性为Double类型,取值范围为(0, 1]
GraphX图数据
seeds
为graph图中结点ID,Long型,要求seeds与graph图结点的交集大于0
种子结点序列
tol
Double如1e-8等,取值范围:大于0
收敛时允许的容差
resetProb
Double,经验值0.15,取值范围:[0, 1]
重置系数
- 输出:Graph:Graph[Double, Double],结点属性存储该结点的TrustRank值,边属性存储源结点出度(权重)的倒数。
- 使用样例
val conf = new SparkConf().setAppName(“TrustRank”).setMaster(host) val sc = new SparkContext(conf) val edges = Array(Edge(1, 2, 1.0), Edge(1, 3, 1.0), Edge(1, 6, 1.0), Edge(2, 8, 1.0), Edge(3, 1, 1.0), Edge(3, 2, 1.0), Edge(3, 4, 1.0), Edge(3, 6, 1.0), Edge(3, 7, 1.0), Edge(3, 8, 1.0), Edge(4, 7, 1.0), Edge(4, 8, 1.0), Edge(5, 2, 1.0), Edge(5, 4, 1.0), Edge(5, 6, 1.0), Edge(5, 7, 1.0), Edge(5, 8, 1.0), Edge(6, 2, 1.0), Edge(6, 4, 1.0), Edge(6, 5, 1.0), Edge(6, 7, 1.0), Edge(6, 8, 1.0), Edge(7, 4, 1.0), Edge(7, 8, 1.0), Edge(7, 9, 1.0), Edge(7, 11, 1.0), Edge(8, 2, 1.0), Edge(8, 4, 1.0), Edge(8, 7, 1.0), Edge(8, 11, 1.0), Edge(9, 4, 1.0), Edge(9, 7, 1.0), Edge(9, 8, 1.0), Edge(9, 11, 1.0), Edge(10, 1, 1.0), Edge(10, 3, 1.0), Edge(10, 4, 1.0), Edge(10, 5, 1.0), Edge(11, 6, 1.0), Edge(11, 8, 1.0), Edge(11, 9, 1.0)) val seeds = sc.makeRDD[VertexId](Seq(1L), 1) TrustRank.runUntilConvergence (g, seeds, 1e-8, 0.15)
- 样例结果:
Map(1 -> 0.15627260888438724,2 -> 0.11384457545266508,3 -> 0.04427723918390972, 6 -> 0.07702374402447199, 8 -> 0.22576331671284044,4 -> 0.10717348934337448,7 -> 0.1259564720613217, 5 -> 0.013094036469637119,9 -> 0.05101366008205779,11 -> 0.08558085778533453)
父主题: 中心性分析