web-dev-qa-db-ja.com

Scikitlearnからk-meansを高速化する方法は?

私のプロジェクトでは、グループ間でデータを分類するためにk-meansを使用しましたが、Scikit-learnからのk-meansの計算に問題があります-それは非常に遅かったです。私はそれを後押しする必要があります。

n_jobsの数を-1に変更しようとしましたが、それでも非常に遅いです!

スピードアップする方法について何か提案はありますか?

9
user8058941

主な解決策in scikit-learnmini-batch kmeans に切り替えることで、計算リソースを大幅に削減します。ある程度、非線形関数を最適化するためのSGD(確率的勾配降下法)とGd(最急降下法)の類似したアプローチです。SGDは通常、より高速です(ローカルソリューションに収束するために必要な計算サイクルの観点から)。これにより、最適化の分散が大きくなるため、結果を再現するのが難しくなる可能性があることに注意してください(最適化は、「フルバッチ」kmeansよりも多くの場合異なるソリューションになります)。

8
lejlot