我正在尝试使用sklearn的逻辑回归训练一个庞大的数据集。 我已经设置了参数n_jobs = -1(也尝试了n_jobs = 5,10,...),但是当我打开htop时,我可以看到它仍然只使用一个核心。
这是否意味着逻辑回归只是忽略了n_jobs参数?
我该如何解决这个问题?我真的需要这个过程变得并行化......
P.S。我正在使用sklearn 0.17.1
答案 0 :(得分:1)
并行进程后端还取决于求解器方法。如果要使用多核,则需要multiprocessing
后端。
但是像'sag'这样的求解器只能使用threading
后端。
并且大多数情况下,由于大量的预处理,它可能会被阻止。
答案 1 :(得分:0)
仔细阅读他们的instructions有多种原因。 您可以尝试这组参数吗?
logit = LogisticRegression(penalty='l2',
random_state=42,
C=0.2,
n_jobs=-1,
solver='sag',
multi_class='ovr',
max_iter=200,
verbose=10
)
启动多个线程需要一两分钟。