我尝试使用程序的这一部分来调优XGBoost中的学习速率参数:
model = XGBClassifier()
learning_rate = [0.0001, 0.001, 0.01, 0.1, 0.2, 0.3]
param_grid = dict(learning_rate=learning_rate)
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=7)
grid_search = GridSearchCV(model, param_grid, scoring="neg_log_loss", n_jobs=-1, cv=kfold)
grid_result = grid_search.fit(X, label_encoded_y)但是在这一行GridSearchCV: ImportError中出现了一个错误,它试图在不支持分叉的系统上执行并行计算而不保护您的导入。要在脚本中使用并行计算,必须使用'if name == ' main ‘保护主循环。
但是,当我将n_jobs=-1的值更改为n_jobs=1时,错误就会消失,但我希望它能够使用所有内核运行。拜托,我怎么才能克服这个错误呢?
发布于 2020-11-20 05:39:16
将主循环放在上面(以及任何其他必要的代码)到一个名为main()的函数中,在脚本的末尾放置if __name__ == '__main__': main(),这样,当您将脚本内容导入到其他程序时,您将保护循环避免意外启动。
https://stackoverflow.com/questions/64924304
复制相似问题