【问题标题】:How can i distribute processing of minibatch kmeans (scikit-learn)?我如何分发小批量 kmeans(scikit-learn)的处理?
【发布时间】:2013-06-07 20:38:23
【问题描述】:

在 Scikit-learn 中,K-Means 有 n_jobs,但 MiniBatch K-Means 缺少它。 MBK 比 KMeans 快,但在大型样本集上,我们希望它跨多处理(或其他并行处理库)分配处理。

MKB 的部分拟合是答案吗?

【问题讨论】:

    标签: python machine-learning multiprocessing scikit-learn


    【解决方案1】:

    我认为这是不可能的。您可以在小批量处理中使用 OpenMP 实现一些东西。我不知道有任何并行的小批量 k-means 程序。并行化随机梯度下降过程有点麻烦。

    顺便说一句,KMeans 中的 n_jobs 参数仅分配不同的随机初始化 afaik。

    【讨论】:

    • 可以预热模型以达到局部最小盆地,然后使用原始模型的克隆对数据集的分区进行微调,并不时进行平均。不过我从来没有尝试过。
    • 有什么特殊的原因会导致您热身而不是从分区开始吗?另外,你的平均水平如何?尝试找到集群之间的对应关系,然后平均中心?还是您热身开始进行一些良好的初始化并期望通信稳定?
    • 模型#0 的质心#2 不太可能接近模型#1 的质心#2...热身是为了使质心的稳定匹配成为可能。
    • 哦,好吧..不熟悉 OpenMP,所以我不走运。在 LinearSVC 这样的监督学习中很容易分布,所以我认为在 MBK 中这是可能的。那么具有多个节点的云如何使用 Kmeans?他们根本没有?
    • 大家好,这个怎么样?看起来很有趣。 code.google.com/p/ddk-means-clustering-system 我也发现了这个 code.google.com/p/dynamic-distributed-kmeans-clustering-python/…
    猜你喜欢
    • 2018-04-06
    • 2017-04-15
    • 2014-05-11
    • 2015-02-20
    • 2019-06-09
    • 2015-11-28
    • 2018-07-07
    • 2012-10-15
    • 2014-02-17
    相关资源
    最近更新 更多