Я использую sklearn в Python 3.6, и я заметил, что для прогнозирования одной отдельной выборки в качестве 1-мерного массива требуется одно и то же время, чем n выборок в качестве 2-мерного массива с произвольным лесом (~ 0,1 с оба).Похоже, что sklearn требуется определенное время, чтобы сначала настроить деревья на каждом шаге прогнозирования, а прогноз - сразу после этого.Это может объяснить, почему время выполнения для прогнозирования большого двумерного массива такое же, как у одномерного массива?
Вот мой код для обучения модели:
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
Это потому, что я использую это неправильно?Или sklearn просто не оптимизирован для одного на один прогноз?