我试图使用sparklyr对模型进行调优。使用for循环来调优参数并不像预期的那样并行化,而且花费了大量的时间。
我的问题:
有什么可以替代的方法来并行工作吗?
id_wss <- NA
for (i in 2:8)
{
id_cluster <- ml_kmeans(id_ip4, centers = i, seed = 1234, features_col = colnames(id_ip4))
id_wss[i] <- id_cluster$cost
}发布于 2018-04-25 10:54:25
当涉及到并发性时,代码没有什么特别的错误:
ml_kmeans(...)。因为循环不会影响到这一点。每个模型都将按照预期使用集群上可用的资源进行培训。尽管如此,请记住,如果您将Spark -指的是内存中的数据与本地实现进行比较,事情将相对缓慢。使用随机初始化might help speed things up
ml_kmeans(id_ip4, centers = i, init_mode = "random",
seed = 1234, features_col = colnames(id_ip4))此外,还可以使用一个可用的评估器(ml_binary_classification_evaluator、ml_multiclass_classification_evaluator、ml_regression_evaluator)对算法进行评估,您可以使用ml_cross_validator / ml_train_validation_split代替手动循环(例如,参见How to train a ML model in sparklyr and predict new values on another dataframe?)。
https://stackoverflow.com/questions/50013717
复制相似问题