【问题标题】:Acceleration of k-Means in scikit-learn library [closed]scikit-learn 库中 k-Means 的加速[关闭]
【发布时间】:2018-01-29 13:27:28
【问题描述】:

我有一个问题,我的代码需要很长时间才能执行。我使用 python 进行编码,使用 scikit-learn 作为机器学习库。我的问题是 k-Means 的计算需要很长时间才能完成(基本上我们有大约 3000 个数据点用于分组到 400 个集群中)。此方法重复约 250 次。至于时间,大约需要40分钟才能完成。关于如何加速它的任何建议? 提前致谢。

【问题讨论】:

  • 对您的 C++ 标签的评论。这如何涉及 C++?
  • 愿它是用比python更好的C++编写的。
  • 你能提供更多的上下文信息和一个小的可重现的示例代码吗?

标签: python scikit-learn k-means


【解决方案1】:

如果所有用例都可以轻松加速,那它早就实现了。

我们不知道您的数据统计或您到底在做什么,但您可能想要调整参数,尤其是:

  • 并行处理:n_jobs(仅线性加速;更多内存)
  • 初始化算法:init
  • 迭代次数:max_iter(线性加速;可能不太准确)
  • 启动次数:n_init(线性加速;可能不太准确)

如果内存允许,你也可以试试:precompute_distances

但更重要的是:即使是 user-guide 也解释说您的用例不适合(集群太多)。

或者尝试替代方案:Mini Batch K-Means

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-12
    • 2018-03-12
    • 2014-08-14
    • 2012-06-29
    • 2021-01-19
    • 1970-01-01
    • 2017-09-19
    • 2019-01-21
    相关资源
    最近更新 更多