我想训练具有不同随机状态的多个LinearSVC模型,但我更愿意并行执行。 sklearn中是否有支持此功能的机制?我知道Gridsearch或一些集合方法是隐含的,但是引擎盖下的东西是什么?
答案 0 :(得分:13)
"""引擎盖下是库joblib
,例如GridSearchCV
中的多处理和一些集合方法。它的Parallel
辅助类是一个非常方便的瑞士刀,用于令人尴尬的并行循环。
这是使用joblib训练具有不同随机状态的多个LinearSVC模型与4个进程并行的示例:
from joblib import Parallel, delayed
from sklearn.svm import LinearSVC
import numpy as np
def train_model(X, y, seed):
model = LinearSVC(random_state=seed)
return model.fit(X, y)
X = np.array([[1,2,3],[4,5,6]])
y = np.array([0, 1])
result = Parallel(n_jobs=4)(delayed(train_model)(X, y, seed) for seed in range(10))
# result is a list of 10 models trained using different seeds