2015-04-12 37 views
5

Tôi muốn đào tạo nhiều mô hình LinearSVC với các trạng thái ngẫu nhiên khác nhau nhưng tôi muốn thực hiện song song. Có một cơ chế hỗ trợ điều này trong sklearn không? Tôi biết Gridsearch hoặc một số phương pháp đồng bộ đang làm trong ngầm, nhưng điều gì dưới mui xe?Đào tạo nhiều mô hình song song với sklearn?

+0

Đừng làm điều đó! Sự ngẫu nhiên trong LinearSVC là một heuristic để tăng tốc độ. Chỉ cần thiết lập dung sai cao hơn, hoặc có thể sử dụng '' SVC (kernel = "tuyến tính") ''. –

Trả lời

8

"Điều" dưới mui xe là thư viện joblib, quyền hạn ví dụ như đa xử lý trong GridSearchCV và một số phương pháp đồng bộ. Đó là lớp học trợ giúp Parallel là một con dao rất tiện dụng của Thụy Sĩ cho sự lúng túng song song cho các vòng lặp.

Đây là một ví dụ để đào tạo nhiều mô hình LinearSVC với các quốc gia khác nhau ngẫu nhiên song song với 4 quy trình sử dụng joblib:

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 
Các vấn đề liên quan