Я использую Sci-Kit Learn на Python3.6, и у меня есть некоторые проблемы во время выполнения для прогнозирования в цикле со случайным лесом, загруженным из Pickle.
Когда я предсказываю случайный лес с 1 оценщиком (деревом), время выполнения составляет около 0,002 секунды на выборку.Однако, когда я увеличиваю количество оценщиков (> 1), время выполнения увеличивается до 0,1 секунды на выборку независимо от количества деревьев.
Вот мой код для сохранения модели:
clf = RandomForestClassifier(n_estimators=1, #or > 1
n_jobs=-1,
random_state=2,
max_depth=15,
min_samples_leaf=1,
verbose=0,
max_features='auto'
)
clf.fit(X_train, y_train)
with open('classifier.pkl', 'wb') as fid:
cPickle.dump(clf, fid)
и вот мой код для загрузки модели и прогнозирования в цикле:
with open('classifier.pkl', 'rb') as fid:
clf = cPickle.load(fid)
for s in samples:
#my feature extraction method
pred = clf.predict(feature) #feature is a 1D np array containing features computed for the sample s
Я не понимаю, почему время выполнения не пропорционально количеству деревьев и почему оно так быстро увеличивается.Это ошибка или я использую рассол неправильно?
Пожалуйста, вы можете мне помочь?
CB