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] |
算法参数 |
---|
MaxLocalProjDBSize Prefix本地求解所允许的最大投影数据量 MaxPatternLength 频繁序列模式的最大长度 MinSupport 频繁序列模式的最小支持度 |
参数名称 |
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)
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