В настоящее время я кодирую Случайный Лес, и я думал о том, чтобы сделать это с помощью многопоточности.
Я видел разные пути, но пока ни один не работал.
class RandomForest(Learner):
def fit(self,X,y):
selected_criterion=Criterion(self._name)
self._trees=[]
dataset=Dataset(X,y,self._dataset_state)
for i in range(self._num_trees): #multithreading here
ds=dataset.bootstrap(self._ratio_samples)
print("Tree", i, "built.")
self._trees.append(self._make_tree(ds, selected_criterion))
def _make_tree(self,dataset,selected_criterion):
node=SplitNode(0,self,selected_criterion)
tree=node.make_tree(dataset.X,dataset.y)
return tree
Хотелось бы, чтобы каждое дерево или их количество были построены параллельно. Есть ли простое решение?
Многопроцессорная обработка также возможна, но кажется более сложной.