5
我想用不同的隨機狀態訓練多個LinearSVC模型,但我更願意並行執行。有沒有一種機制支持sklearn?我知道Gridsearch或者一些合奏方法正在暗中做,但底層是什麼?與sklearn平行訓練多個模型?
我想用不同的隨機狀態訓練多個LinearSVC模型,但我更願意並行執行。有沒有一種機制支持sklearn?我知道Gridsearch或者一些合奏方法正在暗中做,但底層是什麼?與sklearn平行訓練多個模型?
引擎蓋下的「東西」是庫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
不要那樣做! LinearSVC中的隨機性是加速的啓發式算法。只需將容差設置得更高,或者使用''SVC(kernel =「linear」)''。 –