鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

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描述
    1. 包名:package org.apache.spark.graphx.lib.TrustRank
    2. 类名:TrustRank
    3. 方法名:run
    4. 输入:
      1. Graph[VD, ED]
      2. seeds:RDD[VertexId]
    5. 参数详情:

      参数名称

      取值类型

      描述

      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]

      重置系数

    6. 输出:Graph:Graph[Double, Double],结点属性存储该结点的TrustRank值,边属性存储源结点出度(权重)的倒数。
  • 使用样例

    Trust无向有权图样例:

    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描述
    1. 包名:package org.apache.spark.graphx.lib.TrustRank
    2. 类名:TrustRank
    3. 方法名:runUntilConvergence
    4. 输入:
      1. Graph[VD, ED]
      2. seeds: RDD[VertexId]
    5. 参数详情:

      参数名称

      取值类型

      描述

      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]

      重置系数

    6. 输出:Graph:Graph[Double, Double],结点属性存储该结点的TrustRank值,边属性存储源结点出度(权重)的倒数。
  • 使用样例

    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)