EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

PrefixSpan

PrefixSpan为MLlib API类模型接口。

模型接口类别

函数接口

MLlib API

def run[Item, Itemset <: Iterable[Item], Sequence <:

Iterable[Itemset]](data: JavaRDD[Sequence]): PrefixSpanModel[Item] def run[Item](data: RDD[Array[Array[Item]]])(implicit arg0:

ClassTag[Item]): PrefixSpanModel[Item]

MLlib API

  • 功能描述

    传入RDD格式的序列数据,设置最小支持度和最大模式长度,调用run接口,输出满足条件的全部频繁序列。

  • 输入输出
    1. 包名:package org.apache.spark.mllib.fpm
    2. 类名:PrefixSpan
    3. 方法名:run
    4. 输入:JavaRDD[Sequence] / RDD[Array[Array[Item]]],全量的序列数据
    5. 算法参数

      算法参数

      MaxLocalProjDBSize

      Prefix本地求解所允许的最大投影数据量

      MaxPatternLength

      频繁序列模式的最大长度

      MinSupport

      频繁序列模式的最小支持度

    6. 新增算法参数。

      参数名称

      spark conf参数名

      参数含义

      取值类型

      localTi meout

      spark.sophon.ml.ps .localTimeout

      本地求解的超时时间,单位是秒。

      Int,缺省值为300,必须大于等于0。

      filterCa ndidate s

      spark.sophon.ml.ps .filterCandidates

      是否过滤prefix候选集。

      Boolean,缺省值为false。

      projDBS tep

      spark.sophon.ml.ps .projDBStep

      进阶参数,通常保持缺省值即可;投影数据量的调整步调。

      Double,缺省值为10。

      参数及run代码接口示例:

      val prefixSpan = new PrefixSpan()
          .setMinSupport(params.minSupport)
          .setMaxPatternLength(params.maxPatternLength)
          .setMaxLocalProjDBSize(params.maxLocalProjDBSize)
      val model = prefixSpan.run(sequences)
    7. 输出:PrefixSpanModel[Item],频繁序列模型
  • 使用样例
    import org.apache.spark.mllib.fpm.PrefixSpan
    
    val sequences = sc.parallelize(Seq(
    Array(Array(1, 2), Array(3)),
    Array(Array(1), Array(3, 2), Array(1, 2)),
    Array(Array(1, 2), Array(5)),
    Array(Array(6)) ), 2).cache()
    val prefixSpan = new PrefixSpan()
    .setMinSupport(0.5)
    .setMaxPatternLength(5)
    val model = prefixSpan.run(sequences)
    model.freqSequences.collect().foreach { freqSequence =>
    println(
    s"${freqSequence.sequence.map(_.mkString("[", ", ", "]")).mkString("[", ", ", "]")}," +
    s" ${freqSequence.freq}")
    }
  • 结果样例
    [[2]], 3
    [[3]], 2
    [[1]], 3
    [[2, 1]], 3
    [[1], [3]], 2