2015-04-12 17 views
5

Farklı rastgele durumlara sahip birden çok LinearSVC modeli geliştirmek istiyorum ancak bunu paralel olarak yapmayı tercih ediyorum. Bunu sklearn'de destekleyen bir mekanizma var mı? Gridsearch'un ya da bazı topluluk yöntemlerinin örtülü bir şekilde yaptıklarını biliyorum ama başlık altındaki şey nedir?Sklearn ile paralel olarak birden çok modeli eğitin mi?

+0

Bunu yapma:

Bu joblib kullanılarak 4 süreçlere paralel olarak farklı rastgele devletlerle birden LinearSVC modelleri eğitmek için bir örnektir! LinearSVC'deki rastgelelik hızlanmak için bir sezgidir. Sadece toleransı daha yükseğe ayarlayın veya '' SVC (kernel = "linear") '' kullanın. –

cevap

8

Kapağın altındaki "şey", joblib numaralı kitaplıktır; örneğin GridSearchCV numaralı çoklu işleme ve bazı grup yöntemleri. Parallel yardımcı sınıfı, döngüler için utanç verici bir şekilde paralel olarak kullanılan çok kullanışlı bir İsviçre bıçağıdır.

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 
İlgili konular