推荐和模式挖掘
PrefixSpan算法调优
简单介绍PrefixSpan算法各个参数对模型的性能影响
参数 |
说明 |
建议 |
|---|---|---|
numPartitions |
Spark分区数量,分区越多意味着任务数太多,每次调度耗时会增加,分区太少,会导致一些节点没有分配到任务,并且会使每个分区处理的数据量增大,从而使每个agent节点内存提高。 |
在0.5~1.5倍的总核数(executor_cores与num_executor乘积)进行网格搜索,建议使用1倍总核数。 |
localTimeout |
本地求解的超时时间,优化算法新增参数,通过spark.boostkit.ml.ps.localTimeout参数设置,单位是秒。 |
如果发现本地求解阶段运行耗时明显长于其他阶段,则调低此参数,建议取300。 |
filterCandidates |
是否过滤prefix候选集,优化算法新增参数,通过spark.boostkit.ml.ps.filterCandidates参数设置,开启之后会减少通信,增加计算量。 |
Boolean,缺省值为false。 |
projDBStep |
投影数据量的衰减率,优化算法新增参数,通过spark.boostkit.ml.ps.projDBStep参数设置,通常保持缺省值即可;参数值越大,本地求解的计算量越小。 |
Double,缺省值为10。 |
ALS算法调优
简单介绍ALS算法各个参数对模型的性能影响
参数 |
说明 |
建议 |
|---|---|---|
numPartitions |
Spark分区数量,分区越多意味着任务数太多,每次调度耗时会增加,分区太少,会导致一些节点没有分配到任务,并且会使每个分区处理的数据量增大,从而使每个agent节点内存提高。 |
在0.5~1.5倍的总核数(executor_cores与num_executor乘积)进行网格搜索,建议使用1倍总核数。 |
blockMaxRow |
计算格莱姆矩阵行分块大小,与L1 cache的大小有关,影响本地矩阵计算性能,优化算法新增参数,可以通过spark.boostkit.ALS.blockMaxRow参数设置。 |
正整数,缺省值为16,不建议修改。 |
unpersistCycle |
srcFactorRDD反持久化周期,当迭代轮数每达到该值,会对累积的srcFactorRDD进行反持久化,释放内存;参数值越小,会越频繁地释放内存。优化算法新增参数,可以通过spark.boostkit.ALS.unpersistCycle参数设置。 |
正整数,缺省值为300,不建议修改。 |