在我的项目上,我使用k-means对组之间的数据进行了分类,但是我对Scikit-Learn的K-Means计算有问题 - 非常慢。我需要提高它。
我试图将 n_jobs
的数量更改为-1
,但仍然非常慢!
有什么建议如何加快?
Scikit-learn 中的主要解决方案是切换到Mini Batch Kmeans,从而大大降低了计算资源。在某种程度上,这是用于优化非线性函数的SGD(随机梯度下降)与GD(梯度下降)的类似方法-SGD通常更快(就收敛到本地解决方案所需的计算周期而言)。请注意,这引入了优化更多的差异,因此结果可能更难复制(优化最终将在不同的解决方案中比"全批次" KMeans更频繁地进行)。
scikit-learn 0.23 现在具有优化的实现,并采用了一种新的方式,可以在CPU上并行化工作:
https://scikit-learn.fondation-inria.fr/implementing-a-faster-kmeans-kmeans-in-scikit-learn-0-23/