与sklearn并行训练多个模型?
Train multiple models in parallel with sklearn?
我想训练多个具有不同随机状态的 LinearSVC 模型,但我更喜欢并行训练。在 sklearn 中有支持这个的机制吗?我知道 Gridsearch 或一些集成方法正在隐式地做,但幕后是什么?
引擎盖下的 "thing" 是库 joblib
,它支持 GridSearchCV
中的多处理和一些集成方法。它的 Parallel
帮手 class 是一把非常方便的瑞士刀,用于令人尴尬的平行 for 循环。
这是一个使用 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
我想训练多个具有不同随机状态的 LinearSVC 模型,但我更喜欢并行训练。在 sklearn 中有支持这个的机制吗?我知道 Gridsearch 或一些集成方法正在隐式地做,但幕后是什么?
引擎盖下的 "thing" 是库 joblib
,它支持 GridSearchCV
中的多处理和一些集成方法。它的 Parallel
帮手 class 是一把非常方便的瑞士刀,用于令人尴尬的平行 for 循环。
这是一个使用 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