gpt4 book ai didi

python - n_jobs=-1 的 GridSearchCV 不适用于决策树/随机森林分类

转载 作者:行者123 更新时间:2023-12-05 05:05:02 25 4
gpt4 key购买 nike

我正在尝试使用 GridSearchCV 来评估具有不同参数集的不同模型。逻辑回归和 k-NN 不会导致问题,但当 n_jobs=-1 时,决策树、随机森林和一些其他类型的分类器不起作用。

for classifier, paramSet, classifierName in zip(list_classifiers, list_paramSets, list_clfNames):
gs = GridSearchCV(
estimator = classifier,
param_grid = paramSet,
cv = 10,
n_jobs = -1
)
gs.fit(X_train, y_train)
plot_learning_curve(gs, "Learning Curve", X_train, y_train, n_jobs=-1)

我正在使用 Google Colab,但以下任一解决方案都没有解决我的问题。

from sklearn.externals.joblib import parallel_backend
clf = GridSearchCV(...)
with parallel_backend('threading',n_jobs = -1):
clf.fit(x_train, y_train)
if __name__ == "__main__":
import multiprocessing as mp; mp.set_start_method('forkserver', force=True) // 'spawn' has also failed
/// Gridsearch and fit here ///

这是我的源代码:https://github.com/bahadirbasaran/pulsarDetection/blob/master/main.ipynb

错误日志:

error message

任何帮助将不胜感激!

最佳答案

您不需要使用任何额外的调用来创建线程。您的第一个代码片段应该可以工作。如果你打电话:

n_cpus = multiprocessing.cpu_count()

它返回什么?如果您使用它然后传递 n_jobs=n_cpusn_jobs=n_cpus-1(如果您不想让您的计算机 Hook ),看看它是否有效。来自 sklearn 逻辑回归文档:

n_jobs int, default=None Number of CPU cores used when parallelizing over classes if multi_class=’ovr’”. This parameter is ignored when the solver is set to ‘liblinear’ regardless of whether ‘multi_class’ is specified or not.

因此可能正在运行的模型实际上使用的 CPU 不超过 1 个。

希望其中一些想法有所帮助。

关于python - n_jobs=-1 的 GridSearchCV 不适用于决策树/随机森林分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60729502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com