在我的项目中,我使用了k-means来将数据分类为不同组别,但是我在使用Scikit-learn计算k-means时遇到了问题 - 计算速度非常慢。我需要加速。
我尝试更改n_jobs
的数量为-1
,但是速度仍然很慢!
有什么建议可以加速吗?
在我的项目中,我使用了k-means来将数据分类为不同组别,但是我在使用Scikit-learn计算k-means时遇到了问题 - 计算速度非常慢。我需要加速。
我尝试更改n_jobs
的数量为-1
,但是速度仍然很慢!
有什么建议可以加速吗?
在scikit-learn中,主要解决方案是切换到小批量kmeans,可以大大减少计算资源。从某种程度上来说,这是一种类似于SGD(随机梯度下降)与GD(梯度下降)优化非线性函数的方法- SGD通常更快(以收敛到局部解所需的计算周期为衡量标准)。请注意,这会引入更多的优化差异,因此结果可能更难以复现(优化往往会更频繁地结束于不同的解,而不是“完整批次”kmeans)。
k
才能使其正常工作。 - Jeremy McGibbonscikit-learn 0.23+现在提供了一种新的优化实现方式,可以在多个CPU之间并行处理工作:
https://scikit-learn.fondation-inria.fr/implementing-a-faster-kmeans-in-scikit-learn-0-23/
O(n^(dk+1))
,其中n是观测值的数量,d是维度,k是k。 - juanpa.arrivillaga