Я пытаюсь создать ансамблевую модель и тренироваться, используя многопроцессорный модуль.Может кто-нибудь объяснить, почему это приводит к "NotFitedError"?Вот воспроизводимый пример, который я сделал, чтобы продемонстрировать, что происходит:
import multiprocessing as mp
import numpy as np
from sklearn.ensemble import RandomForestClassifier
X = [np.random.normal(size=10) for _ in range(10)]
Y = [np.random.choice([0,1]) for _ in range(10)]
class ensemble(object):
def __init__(self, num_models):
self._models = [RandomForestClassifier() for _ in range(num_models)]
def train(self, training_data, training_labels):
_fit = lambda model, data, labels: model.fit(data, labels)
processes = [mp.Process(target=_fit, args=(self._models[index],
training_data,
training_labels)) for index in range(len(self._models))]
[p.start() for p in processes]
[p.join() for p in processes]
# try to predict with one of the models in the ensemble
self._models[0].predict(training_data)
e = ensemble(num_models=2)
e.train(X, Y)