【问题标题】:How to enable multicore processing with sklearn LogisticRegression?如何使用 sklearn LogisticRegression 启用多核处理?
【发布时间】:2017-02-19 12:31:21
【问题描述】:

Sklearn 的 LogisticRegression 模型拒绝并行运行。我设置了 n_jobs=-1,也尝试了 n_jobs=4。不走运——只有一个核心在使用。我已经并行运行了其他 sklearn 模型,例如 RandomForestClassifier 和 XGBoostClassifier。

我在 Ubuntu 14.04 上运行 Python 2.7.12 和 sklearn 0.18。

其他人也问过同样的问题(例如,here),但到目前为止没有收到任何有希望的答复。我希望我的运气会更好。

【问题讨论】:

  • 你想运行什么? AFAIK LogisticRegression 不支持并行性
  • 可能的原因有很多。但幸运的是,这并不重要。在所有理智的机器学习任务中,您都将使用交叉验证,并且 sklearns LogisticRegressionCV 很容易并行。
  • @sascha 这是一个很大的调用,通常单个时间分离的拆分比 n 倍交叉验证更合适,在生产应用程序中,您可能只需要尽快训练模型。
  • @maxymoo 已接受关注!当然你是对的,总是有用例。但它们中的大多数在 SO 问题方面并不常见。
  • 由于 LogisticRegression 不支持 n_jobs,因此可以使用 SGDClassifier 进行多核处理,如果您有一个大数据集可能更合适,但您应该找到最好的超参数。跨度>

标签: scikit-learn logistic-regression


【解决方案1】:

LogisticRegresssion 的文档看来,n_jobs 参数仅用于单独的交叉验证折叠(与 RandomForestClassifier 的情况不同,其中单个树是并行计算的)。

n_jobs : int,默认值:1

交叉验证循环期间使用的 CPU 内核数。如果给出 值为 -1,使用所有内核。

【讨论】:

  • 谢谢你,Maxymoo。还有萨沙。我没有意识到 n_jobs 参数仅限于交叉验证(并且可能也是网格搜索)。我正在做一些探索,对这两件事都不感兴趣。我只是希望加快单个模型的训练过程。哦,好吧!
猜你喜欢
  • 2019-06-26
  • 2019-11-18
  • 2017-12-06
  • 2019-05-12
  • 2016-05-20
  • 2017-04-12
  • 2013-01-24
  • 2019-04-11
  • 2017-03-06
相关资源
最近更新 更多