【问题标题】:multiprocessing in Logistic Regression in PythonPython中逻辑回归中的多处理
【发布时间】:2021-10-29 00:24:35
【问题描述】:

我正在使用 LogisticRegression 算法

它工作正常,只是需要很长时间才能完成

我决定按照https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html 使用多处理功能 (n_jobs=-1)

但性能没有变化

这是我的代码

mdl = LogisticRegression(n_jobs=-1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
mdl.fit(X_train,y_train)
y_pred=mdl.predict(X_test)

如何在 LogisticRegression 上使用它?

【问题讨论】:

  • 也许您正在尝试解决二进制分类问题,在这种情况下将没有任何好处。
  • 确实是二分类,但是为什么没有好处呢?
  • 函数的设计是每个类都可以在一个核心上训练,所以既然你没有多个类,就没有工作要分发。二进制分类仅限于单核。
  • 如何将多标签多分类模型分布在多个处理器上?
  • 如果您只是通过了多类训练集,那么您当前的设置就可以了。根据文档的默认行为是自动检测二进制/多类,并且由于您已经通过了 n_jobs=-1 它应该可以工作。

标签: python logistic-regression


【解决方案1】:

你在做多类分类吗? 如果您的数据不超过两个类,则设置 n_jobs 参数实际上是没有用的。

要提高速度,请尝试使用特征工程来减少特征数量。

您也可以尝试更改求解器。以下是文档所说的:
“对于小型数据集,‘liblinear’(以前是 default) 是一个不错的选择,而 ‘sag’ 和 'saga' 对于大型的更快。 对于多类问题,只有“newton-cg”, ‘sag’, ‘saga’ 和 ‘lbfgs’ 处理多项式 损失; “liblinear”仅限于一对一 方案。”

还有一些参数,如tol,您可以尝试更改。

最后,如果不起作用,请使用其他模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2020-03-22
    • 2016-12-01
    • 2016-01-15
    • 2019-06-24
    • 2011-11-22
    相关资源
    最近更新 更多