聚类
K-means算法调优
简单介绍k-means算法各个参数对模型的性能影响。
参数 |
说明 |
建议 |
---|---|---|
numPartitions |
Spark分区数量,分区越多意味着任务数太多,每次调度耗时会增加,分区太少,会导致一些节点没有分配到任务,并且会使每个分区处理的数据量增大,从而使每个agent节点内存提高。 |
在0.5~1.5倍的总核数(executor_cores与num_executor乘积)进行网格搜索,建议使用1倍总核数。 |
k |
聚类中心数。 |
一般需要多试一些值以获得较好的聚类效果 |
maxIter |
最大迭代次数。 |
如果是凸数据集,使用默认值;如果非凸数据集,算法可能很难收敛,此时可以指定最大的迭代次数让算法可以及时退出循环。 |
initSteps |
用不同的初始化质心运行算法的次数。 |
由于结果受初始值的影响,因此获取局部最优解的迭代算法需要多跑几次以选择一个较好的聚类效果,默认是10,一般不需要改。如果k值较大,则可以适当增大这个值。 |
optMethod |
样本采样触发开关,优化算法新增参数,通过spark.boostkit.Kmeans.optMethod参数设置,设置值包括default(触发)和allData(不触发)。 |
默认值为default。 |
sampleRate |
每一轮迭代使用的数据占全量数据集的比例,优化算法新增参数,影响计算效率和聚类误差。降低该值,计算效率增加,但存在一定概率使得聚类误差变大,通过spark.boostkit.Kmeans.sampleRate参数设置。 |
默认值为0.05。 |
LDA算法调优
简单介绍LDA算法各个参数对模型的性能影响
参数 |
说明 |
建议 |
---|---|---|
numPartitions |
Spark分区数量,分区越多意味着任务数太多,每次调度耗时会增加,分区太少,会导致一些节点没有分配到任务,并且会使每个分区处理的数据量增大,从而使每个agent节点内存提高。 |
在0.5~1.5倍的总核数(executor_cores与num_executor乘积)进行网格搜索,建议使用1倍总核数。 |
spark.task.cpus |
每个任务分配的cpu核数。 |
建议和executor_cores保持一致。 |
spark.driver.cores |
分配给driver进程使用的cpu核数。 |
根据实际的cpu核数进行分配。 |
DBSCAN算法调优
简单介绍DBSCAN算法各个参数对模型的性能影响
参数 |
说明 |
建议 |
---|---|---|
numPartitions |
Spark分区数量。 |
numPartitions建议与executor的个数保持一致(可适当减少executor个数,增大单个executor资源配置,实测有性能收益)。 |
epsilon |
DBSCAN算法的近邻距离参数。 |
取值范围大于0.0。 |
minPoints |
DBSCAN算法定义核心点的近邻点个数阈值参数。 |
正整数。 |
sampleRate |
sampleRate为对输入数据的采样率,基于采样数据用来对全量输入数据进行空间划分。 |
取值范围为(0.0, 1.0],默认值为1.0,代表默认使用全量输入数据。 |