Пользовательский ансамбль scikit-learn модель NotFittedError после подгонки моделей с многопроцессорной обработкой - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать ансамблевую модель и тренироваться, используя многопроцессорный модуль.Может кто-нибудь объяснить, почему это приводит к "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)
...