ero*_*gol 6 machine-learning scikit-learn python-multiprocessing
我想训练具有不同随机状态的多个LinearSVC模型,但我更愿意并行执行.sklearn中是否有支持此功能的机制?我知道Gridsearch或者一些集合方法正在暗中进行,但是幕后的内容是什么?
YS-*_*S-L 14
引擎盖下的"东西"就是图书馆joblib,它可以提供多处理GridSearchCV和一些整体方法.它的Parallel辅助类是一个非常方便的瑞士刀,令人尴尬的并行循环.
这是使用joblib与4个进程并行训练具有不同随机状态的多个LinearSVC模型的示例:
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
Run Code Online (Sandbox Code Playgroud)